proxmox のCTテンプレートにはTurnkey Linuxのアプリたちが揃っていて、これなら一発でサービス立ち上げができます。これをルーターのOpenWRTにnginxを入れてreverse proxy 経由で公開しようと考えました。
[WAN]—[OpenWRT(reverse proxy)]—-+—-[App-1]
+—-[App-2]
というわけで、当然サブディレクトリでまとめようということになります。
https://aaa.bbb.com/xxx/ → http(s)://App-1
https://aaa.bbb.com/yyy/ → http(s)://App-2
OpenWRTの用意
OpenWRTはルーター現物で用意してもいいでしょうし、proxmox上にVM( x86-64 )で用意してもいいでしょう。nginx-sslを入れて、さらに DDNSとLetsEncrypt を使いたいので ddns-script, acme, adblock なども入れましょう。さらに、自宅へ VPN したいから Wireguard も入れて万能箱に仕立てます。
opkg install nginx-ssl をすると、
OpenWRT に ssh でログインし、opkg install nginx-ssl を行うとweb interface を提供していた uhttpd が停止して nginx がそれを提供するようになります。default では nginx の設定は uci で設定され、/etc/config/nginx から作られる /etc/nginx/uci.conf に書かれることになっていました。
この先、手打ちで /etc/nginx/nginx.conf を設定しますので
cp /etc/nginx/uci.conf /etc/nginx/uci.conf.bak
とやって控えをとっておきました。続いて、/etc/config/nginx をエディタで開いて、先頭を----
config main 'global'
option uci_enable 'false'
----
と、’true’を’false’にかえて、uciと縁を切る宣言をします。
/etc/init.d/nginx restart
して縁が切れていることを確認しましょう。(nginx.confがないから立ち上がらないんだったっけかな?)
あとは、firewall の設定で、80番、443番のポートを受け取るよう、WANにてacceptするよう開けておきましょう。Letsencryptにアクセスするには443番だけでなく80番ポートも開けて置かなければなりません。忘れずに!
