バーチャルホスト・リバースプロキシの設定(CentOS7)
提供:あわ自由帳
メインページ > CentOS 7 で自宅サーバー構築 > バーチャルホスト・リバースプロキシの設定(CentOS7)
apacheでリバースプロキシを導入した。
リバースプロキシとは, 特定のサーバへの要求を必ず経由するように設定されたプロキシサーバのことである。
今回は, 1つのグローバルIPで複数のWebサーバを公開するために設定した。
リバースプロキシは外部からのパケットをLAN内部でアクセスされたドメインごとにアクセスさせるサーバを変える。
今回は, apacheのリバースプロキシ機能を用いることにした。
また, バーチャルホストを用いることでドメインごとにアクセスするサーバを変更する。
- apacheは導入済みで、メインホスト用バーチャルホスト設定は完了済みとする。
- ホスト名、IPアドレスは自宅サーバーの環境に置き換えること。
- 転送元、転送先の両方にサーバー証明書が必要です。
リバースプロキシの設定を行うドメインの設定
バーチャルホスト設定ファイル作成
ここで, ProxyPass*の設定で最後に”/”をつけておかないと、そこからのリンクのパスがおかしくなり移動できないので注意。
[root@host3 ~]# vi /etc/httpd/conf.d/virtualhost-awajp.com.conf ## 作成:2017-05-13 修正:2017-05-25 <Directory "/var/www/virtualhost/awajp.com" > AllowOverride All </Directory> <IfModule mod_proxy.c> #フォワードプロキシ機能の無効化 ProxyRequests Off #リバースプロキシなので制限をしない。 <Proxy *> Order deny,allow Allow from all </Proxy> #プロキシ経由であることをヘッダに記述しない ProxyVia Off # プロキシリクエストに、受け付けた Host HTTP ヘッダを使う ProxyPreserveHost On <VirtualHost *:80> DocumentRoot "/var/www/virtualhost/awajp.com" ServerName awajp.com:80 ← 追加ホストサーバー名を指定 ErrorLog logs/awajp.com-error_log ← 追加ホスト用エラーログファイル名を指定 CustomLog logs/awajp.com-access_log combined env=!no_log ← 追加ホスト用アクセスログファイル名を指定 Alias /awstatsreport /var/www/virtualhost/awstatsreport/awajp.com # awstats awstatsicons awstatsreport へのリクエストはプロキシしない ProxyPass /awstats/ ! ProxyPass /awstatsicons/ ! ProxyPass /awstatsreport/ ! ProxyPass / http://192.168.1.4:80/ ← 転送先追加 ProxyPassReverse / http://awajp.com:80/ ← 転送先追加 ProxyPassReverseCookieDomain 192.168.1.4 awajp.com ← 追加 ProxyPassReverseCookiePath / / ← 追加 </VirtualHost> <VirtualHost *:443> DocumentRoot "/var/www/virtualhost/awajp.com" ServerName awajp:443 ← 追加ホストサーバー名を指定 ErrorLog logs/awajp.com-ssl_error_log ← 追加ホスト用SSLエラーログファイル名を指定 CustomLog logs/awajp.com-access_log combined env=!no_log ← 追加ホスト用アクセスログファイル名を指定 Alias /awstatsreport /var/www/virtualhost/awstatsreport/awajp.com # APC INFO アクセス制限 <Location "/apc"> Require all denied Require ip 127.0.0.1 Require ip 192.168.1.0/24 </Location> # OpCache 状態確認アクセス制限 <Location "/opcache-status"> Require all denied Require ip 127.0.0.1 Require ip 192.168.1.0/24 </Location> ## SSL Engine Switch: ## Enable/Disable SSL for this virtual host. SSLEngine on SSLProxyEngine on ← 追加 SSLProxyCheckPeerCN off ← 追加(証明書の確認をスキップ) SSLProxyCheckPeerName off ← 追加(証明書の確認をスキップ) RequestHeader set X_FORWARDED_PROTO 'https' # awstats awstatsicons awstatsreport へのリクエストはプロキシしない ProxyPass /awstats/ ! ProxyPass /awstatsicons/ ! ProxyPass /awstatsreport/ ! ProxyPass / https://192.168.1.4:443/ ← 転送先追加 ProxyPassReverse / https://awajp.com:443/ ← 転送先追加 ProxyPassReverseCookieDomain 192.168.1.4 awajp.com ← 追加 ProxyPassReverseCookiePath / / ← 追加 ## SSL Protocol support: # SSLv2、SSLv3を無効化する SSLProtocol All -SSLv2 -SSLv3 ## SSL Cipher Suite: SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 ## Speed-optimized SSL Cipher configuration: SSLHonorCipherOrder on SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS ## Server Certificate: SSLCertificateFile /etc/letsencrypt/live/mail.sudachi.jp/cert.pem ← 追加ホスト用公開鍵を指定 ## Server Private Key: SSLCertificateKeyFile /etc/letsencrypt/live/mail.sudachi.jp/privkey.pem ← 追加ホスト用秘密鍵を指定 ## Server Certificate Chain: SSLCertificateChainFile /etc/letsencrypt/live/mail.sudachi.jp/chain.pem ← 追加ホスト用中間証明書を指定 ## SSL Protocol Adjustments: BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 Header always set Strict-Transport-Security "max-age=15768000" </VirtualHost> </IfModule>
Webサーバー再起動
「httpd.conf」の文法チェック
[root@host3 ~]# apachectl configtest Syntax OK
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.