そうだ!リバースプロキシでホスト名と関連付けて構築しよう!!
プロキシのドメインを使いリバースプロキシを作る
Apache2でWebサーバーを運用している時に遠隔からルータもいじりたいと考える。
しかし、ルータは直接外部から操作させたくないのでProxyを経由することにした!
今回はそれの設定を行なっていくよ!!
見取り図
<img src="0002.jpg" width="50%">
lプロキシを有効化
sudo a2enmod proxy_http ssl proxy
できたら次に
vi /etc/apache2/mods-available/proxy.conf
<IfModule mod_proxy.c>
# If you want to use apache2 as a forward proxy, uncomment the
# 'ProxyRequests On' line and the <Proxy *> block below.
# WARNING: Be careful to restrict access inside the <Proxy *> block.
# Open proxy servers are dangerous both to your network and to the
# Internet at large.
#
# If you only want to use apache2 as a reverse proxy/gateway in
# front of some web application server, you DON'T need
# 'ProxyRequests On'.
ProxyRequests Off
<Proxy *>
AddDefaultCharset off
Require all granted
#Require local
</Proxy>
ProxyVia Off
ProxyPreserveHost On
# Enable/disable the handling of HTTP/1.1 "Via:" headers.
# ("Full" adds the server version; "Block" removes all outgoing Via: headers)
# Set to one of: Off | On | Full | Block
#ProxyVia Off
</IfModule>
ProxyRequestsは必ずoffに(オープンプロキシは危険なため)
この設定は、利用者は誰でも許可
ドメインはプロキシのドメインを使用する
の大まかに2つ
lプロキシのドメインと関連付け(ホスト名でも)
sudo vi /etc/apache2/sites-available/000-default-le-ssl.conf
もしくは
sudo vi /etc/apache2/sites-available/Myproxy.conf
開いたら以下を追記します。
(例としてexample.comを使用しています)
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName [好きな名前のホスト名].example.com
SSLEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ProxyRequests Off
ProxyPass / https://[接続先ドメイン]/
ProxyPassReverse / https://[接続先ドメイン]/
ServerAdmin example@mail.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
</IfModule>
「[ ]」の色の場所は自身の情報を入力します。
好きな名前のホスト名は、作者はルータに接続するためにあえてrouter.example.comとします。
[接続先ドメイン]はプロキシを行う際どこに接続するかのドメインを記入します。
作者はルータに接続するためにhttps://192.168.1.1/と書きます
(※SSL証明書などはここに書きません)→HTTPS化をしよう!その2 参照
l最後
sudo a2ensite Myproxy
sudo systemctl restart apache2
再起動して接続できるか確認します。
完了です!!