ヘルプ:バーチャルホスト・リバースプロキシの設定(CentOS7)
提供: すだちWiki
メインページ > ヘルプ:目次 > ヘルプ:自宅サーバー構築(CentOS7) > バーチャルホスト・リバースプロキシの設定(CentOS7)
apacheでリバースプロキシを導入した。
リバースプロキシとは, 特定のサーバへの要求を必ず経由するように設定されたプロキシサーバのことである。
今回は, 1つのグローバルIPで複数のWebサーバを公開するために設定した。
リバースプロキシは外部からのパケットをLAN内部でアクセスされたドメインごとにアクセスさせるサーバを変える。
今回は, apacheのリバースプロキシ機能を用いることにした。
また, バーチャルホストを用いることでドメインごとにアクセスするサーバを変更する。
- apacheは導入済みで、メインホスト用バーチャルホスト設定は完了済みとする。
- ホスト名、IPアドレスは自宅サーバーの環境に置き換えること。
- 転送元、転送先の両方にサーバー証明書が必要です。
リバースプロキシの設定を行うドメインの設定
バーチャルホスト設定ファイル作成
ここで, ProxyPass*の設定で最後に”/”をつけておかないと、そこからのリンクのパスがおかしくなり移動できないので注意。
[root@host3 ~]# vi /etc/httpd/conf.d/virtualhost-awajp.com.conf
## 作成:2019-04-13 修正:2019-04-18
<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.com: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/awajp.com/cert.pem ← 追加ホスト用公開鍵を指定
## Server Private Key:
SSLCertificateKeyFile /etc/letsencrypt/live/awajp.com/privkey.pem ← 追加ホスト用秘密鍵を指定
## Server Certificate Chain:
SSLCertificateChainFile /etc/letsencrypt/live/awajp.com/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.
