自宅用通知マシン作成(5)

nginxのリバースプロキシでスタックチャンのipに飛ばす。

スタックチャンを置く場所は店。呼び出し用端末は家に置く。取り急ぎは家からスタックチャンへの通信が通ればよい。店にはNTTルーターの下にもともとdockerのletsencript(ssl)対応なnginxのリバースプロキシがいる。こいつdocker-letsencrypt-nginx-proxy-companion。通常はnginxのリバースプロキシの後ろにdockerのwebサーバーなコンテナという構成になるもので、(あまり設定を頑張らないなら)webサーバーなコンテナからさらにスタックチャンに転送するのが楽。

家の端末(無線)->家の無線親機->家のNTTルーター ->インターネト回線 -> 店のNTTルーター -> リバースプロキシ->webサーバーなコンテナ->無線親機->スタックチャン

という通信経路。

やったこと(あとから書いているのでもれあるかも)

DNS登録

スタックチャンを呼び出すドメインのAレコードをDNSに登録。店は固定ipはないのでddnsを使用。ddnsサービスとかもあるそうだが昔作ったawsを使用するやつで運用。

店のルーターからリバースプロシキサーバへのipマスカレード設定

80番ポートと443番ポートが必要。環境に応じてファイヤウォールも適宜設定。

docker及びletsencript用コンテナを設定

基本こちらのまま。しばらく更新されていなそうなことに気づいた。ぱっとみDupricatedになってなさそうだけど開発ステータス確認したほうが良いかも。

webサーバーなコンテナ

composeファイル

dockerファイル

my_default.confに一部設定分けているのは深い意味はない。

nginxの転送設定(default.conf)

192.168.1.nはスタックチャンがつながっている無線親機のwan側IP

無線親機の設定

スタックチャンが固定IPじゃないとややこしいので無線LAN側IPをDHCPじゃなくて固定に変更。

また、やってきたリクエストをスタックチャンに振り分けるようにipマスカレード設定を追加。

スタックチャンが複数出てきたときはwebサーバーなコンテナのproxy_pass設定でportを分けてやって、ipマスカレードで振り分けたら何とかなるはず。

URLが雑なのでプロキシの振り分けがあとで困るかもしれないけど、使いながら考える。呼び出しの権限的なものは何もつけていないけど必要ならアクセストークン的なものなりするかnginx段階で何かするとかかな。

コメントを残す

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