proxmox の CT/VM は OpenWRT の nginx で公開

投稿者: | 2023年4月28日

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番ポートも開けて置かなければなりません。忘れずに!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です