提供: すだちWiki
移動先: 案内検索

バーチャルホスト設定(CentOS7)

メインページ > CentOS 7 で自宅サーバー構築  > バーチャルホスト設定(CentOS7)

すでに稼働しているWebサーバー(Apache)にバーチャルホストの設定を行ったので忘れないために書いておく。

バーチャルホスト設定

バーチャルホスト用ドキュメントルートディレクトリ作成

[root@host3 ~]# mkdir /var/www/virtualhost
[root@host3 ~]# mkdir /var/www/virtualhost/awajp.com

未定義ホスト用バーチャルホスト設定ファイル作成

※バーチャルホスト未定義ホスト名でアクセス時にアクセスを拒否する

[root@host3 ~]# vi /etc/httpd/conf.d/virtualhost-00.conf
<VirtualHost _default_:80>
    ServerName any
    <Location />
        Require all denied
    </Location>
</VirtualHost>

メインホスト用バーチャルホスト設定ファイル作成

[root@host3 ~]# vi /etc/httpd/conf.d/virtualhost-sudachi.jp.conf
<VirtualHost *:80>
    ServerName sudachi.jp
    DocumentRoot /var/www/html
</VirtualHost>

追加ホスト用バーチャルホスト設定ファイル作成

※動作しなかったので.htaccessの許可を追加

[root@host3 ~]# vi /etc/httpd/conf.d/virtualhost-awajp.com.conf
<Directory "/var/www/virtualhost/awajp.com" >
    AllowOverride All
</Directory>

<VirtualHost *:80>
    ServerName awajp.com
    DocumentRoot /var/www/virtualhost/awajp.com
    ErrorLog logs/awajp.com-error_log
    CustomLog logs/awajp.com-access_log combined env=!no_log
</VirtualHost>

Webサーバー再起動

[root@host3 ~]# systemctl restart httpd

暗号化通信用バーチャルホスト設定

サーバー証明書取得

追加ホストについて、サーバー証明書(Certbot)の「サーバー証明書取得」を実施。

メインホスト用バーチャルホスト設定

ファイル編集

[root@host3 ~]# vi /etc/httpd/conf.d/virtualhost-sudachi.jp.conf
<VirtualHost *:80>
    ServerName sudachi.jp
    DocumentRoot /var/www/html
</VirtualHost>

/etc/httpd/conf.d/ssl.confの<VirtualHost _default_:443>~</VirtualHost>をコピーしてここに貼り付けて下記のみ修正

<VirtualHost *:443> ← *に変更

DocumentRoot "/var/www/html" ← メインホスト用ドキュメントルートを指定
ServerName sudachi.jp:443 ← メインホストサーバー名を指定

追加ホスト用バーチャルホスト設定

ファイル編集

[root@host3 ~]# vi /etc/httpd/conf.d/virtualhost-awajp.com.conf
<Directory "/var/www/virtualhost/awajp.com" >
   AllowOverride All
</Directory>

<VirtualHost *:80>
    ServerName awajp.com
    DocumentRoot /var/www/virtualhost/awajp.com
    ErrorLog logs/awajp.com-error_log
    CustomLog logs/awajp.com-access_log combined env=!no_log
</VirtualHost>

/etc/httpd/conf.d/ssl.confの<VirtualHost _default_:443>~</VirtualHost>をコピーしてここに貼り付けて下記のみ修正

<VirtualHost *:443> ← *に変更
DocumentRoot "/var/www/virtualhost/awajp.com" ← 追加ホスト用ドキュメントルートを指定
ServerName awajp.com:443 ← 追加ホストサーバー名を指定
ErrorLog logs/awajp.com-ssl_error_log ← 追加ホスト用SSLエラーログファイル名を指定
TransferLog logs/awajp.com-ssl_access_log ← 追加ホスト用SSLアクセスログファイル名を指定
SSLCertificateFile /etc/letsencrypt/live/awajp.com/cert.pem ← 追加ホスト用公開鍵を指定
SSLCertificateKeyFile /etc/letsencrypt/live/awajp.com/privkey.pem ← 追加ホスト用秘密鍵を指定
SSLCertificateChainFile /etc/letsencrypt/live/awajp.com/chain.pem ← 追加ホスト用中間証明書を指定

ssl.conf編集

[root@centos ~]# vi /etc/httpd/conf.d/ssl.conf
--削除(ここから)--
<VirtualHost _default_:443>
・
・
・
</VirtualHost>
--削除(ここまで)--

Webサーバー再起動

[root@host3 ~]# systemctl restart httpd

動作確認

[root@host3 ~]# systemctl status httpd
 httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running)  since 土 2017-05-06 13:45:58 JST; 46s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 29305 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 29311 (httpd)
   Status: "Total requests: 9; Current requests/sec: 0.111; Current traffic: 1.3KB/sec"
   CGroup: /system.slice/httpd.service
           ├─29311 /usr/sbin/httpd -DFOREGROUND
           ├─29312 /usr/sbin/httpd -DFOREGROUND
           ├─29313 /usr/sbin/httpd -DFOREGROUND
           ├─29314 /usr/sbin/httpd -DFOREGROUND
           ├─29315 /usr/sbin/httpd -DFOREGROUND
           ├─29316 /usr/sbin/httpd -DFOREGROUND
           ├─29317 /usr/sbin/httpd -DFOREGROUND
           ├─29318 /usr/sbin/httpd -DFOREGROUND
           ├─29322 /usr/sbin/httpd -DFOREGROUND
           ├─29323 /usr/sbin/httpd -DFOREGROUND
           └─29324 /usr/sbin/httpd -DFOREGROUND

 5月 06 13:45:57 host3.sudachi.jp systemd[1]: Starting The Apache HTTP Server...
 5月 06 13:45:58 host3.sudachi.jp systemd[1]: Started The Apache HTTP Server.