#・目的
##sshで繋がっている時だけおうちwebのテストができる環境を構築します。
#・行うこと
apache2をリバースプロキシとして動作させます。
sshでおうちwebのポートをvpsで応答できるようにします。
##・流れ
おうちwebのlocalhost:80(apache2)--(C) [ おうちweb ]
↑↑↑
hogehoge.comのlocalhost:8080 --(B) [ vpsのlocalhost ]
↑↑↑
hogehoge.com:8443 ReverseProxy ---(A) [ vpsのホスト名"hogehoge.com"のtest用ポート8443]
↑↑↑
UserAccess
(debian10[buster]でさくらのvpsでのサイト構築についての記録です。)
(ここではvpsのホスト名は"hogehoge.com"としています。)
(apache2が導入されており"a2enmod ssl"等が設定されていて、tlsが動作していることが前提です。)
(tlsサイトの構築はletsencryptのサイトを参照をお願いします。)
#・行なったこと
#(1) proxyのモジュールを有効にします。(@vps [A])
# a2enmod proxy
# a2enmod proxy_http
##(2) 動作ポートを追加します。(@vps [A])
# vi /etc/apache2/ports.conf
"Listen 8443"を追加。
(抜粋)
> 5 Listen 80
> 6
> 7 <IfModule ssl_module>
> 8 Listen 443
> 9 Listen 8443
> 10 </IfModule>
> 11
> 12 <IfModule mod_gnutls.c>
> 13 Listen 443
> 14 Listen 8443
> 15 </IfModule>
(参考) http://neetchanprogrammer.hatenablog.com/entry/2017/02/07/153623
##(3) apache2をリバースプロキシとして動作させます。(@vps [A])
(tls部はletsencryptを参照をお願いします。)
localhost:8080のサービスをhttps://hogehoge.com:8443
として受ける。
# vi /etc/apache2/sites-enabled/ssh-hogehoge.conf
> 1 <IfModule mod_ssl.c>
> 2 <VirtualHost _default_:8443>
(省略)
> 19 # proxy settings
> 20 <IfModule proxy_module>
> 21 ProxyRequests Off
> 22 ProxyPass / http://localhost:8080/
> 23 ProxyPassReverse / http://localhost:8080/
> 24 </IfModule>
(4) sshでローカルで動作するwebポート(localhost:80)を"hogehoge.com"のport8080にアタッチします。(@おうちpc [C])
ssh -g -N -l pi_user -i ~/.ssh/key_rsa hogehoge.com -R 8080:localhost:80
※オプションの"-g"は接続した端末以外からのアクセスを許可するためのもの。
(いつでも終了できるように引数によるバックグラウンドでの実行は行わない("-f"を使用しない))
(5) 物理的にアクセス許可を追加する。(@vps [A])
(apache2のリバースプロキシが動作するポートへの接続を許可)
# vi /etc/iptables/rules.v4
-A INPUT -p tcp --dport 8443 -j ACCEPT
iptableポリシーの反映を行います。
iptables-restore < /etc/iptables/rules.v4
##(6) BrowserよりURLにアクセスして表示を確認します。
https://hogehoge.com:8443/