1つの IPアドレスで複数のサイトを利用する
今使用しているサーバに、もう 1つ別のアプリをおくことになりました。すでに、http://localhost/ のような URL で動いちゃってるのがあるので、ポートを指定して別のサイトを表示させるようにします。また、アクセスログも別にはかれるようにしたいです。
1つのIPで複数のSSLサイトを運用する方法 を参考にすると、Apache の設定で VirtualHost を新しく作成すればできそうです。
今回設定したいのはSSL サイトなので、/etc/httpd/conf/httpd.conf ではなく、/etc/httpd/conf.d/ssl.conf をいじります。ポートは 443 が使用済みなので、444 として作成します。(あいてそうなポートを適当に。)
Listen 443 # この行はもともとあるので、下に追加。 Listen 444 NameVirtualHost 192.168.XX.XX:443 NameVirtualHost 192.168.XX.XX:444
あとは、もともとあった VirtualHost ディレクティブをコピーして、DocumentRoot と出力されるアクセスログの設定を変更すれば OK です。ssl.conf の一番下に追加してください。デフォルトだと、
- ログのファイル名は先頭に hoge_ をつけることにします。
- DocumentRoot は /var/www/hoge/public とします。
- デフォルトの設定から変更したところを赤字にしておきます。
DocumentRoot "/var/www/hoge/public" ErrorLog logs/hoge_ssl_error_log LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" TransferLog logs/hoge_ssl_access_log LogLevel warn SSLEngine on SSLProtocol -ALL +SSLv3 +TLSv1 SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM SSLCertificateFile /etc/pki/tls/certs/localhost.crt SSLCertificateKeyFile /etc/pki/tls/private/localhost.key SSLOptions +StdEnvVars SSLOptions +StdEnvVars SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/hoge_ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
それぞれのサイトで別のドメインを持っている場合は、VirtualHost ディレクティブの中に、ServerName の設定も必要です。今回は、公開しているサーバじゃないので IP そのまま表示しちゃってます。なので、アクセスするときは、http://192.168.XX.XX/ (既存サイト。:443 をつけても同じ。)か、http://192.168.XX.XX:444/ (追加したサイト)のような感じでできます。