何気ないQNAPの設定が、Dockerの開発環境大いに影響した話し

突然、QNAPのContainerStationを利用してDockerコンテナーでのテストサーバーが動かなくなった。アクセスするとタイムアウトしてしまう。

いくつかのテストサーバーやRedmine, GitlabをDockerコンテナーで構築して、jwilder/nginx-proxyを使ってnginxのリバースプロキシで分散させている。そして、jrcs/letsencrypt-nginx-proxy-companionでLet’sEncryptの証明書を自動的にインストールさせている。これは定番な設定である。

jrcs/letsencrypt-nginx-proxy-companion のイメージで動いているコンテナのコンソールを見てみると、

Verify error:Fetching http://{URL}/.well-known/acme-challenge/{ランダム文字列}

というエラーが出力されている。上記のURLをブラウザで直接アクセスしてみると、確かにタイプアウトしていた。最後に

likely firewall problem

なんて言っているので、まずはヤマハのルーターを疑ってみる。ログを見てても特に問題はない。

jwilder/nginx-proxy イメージのコンテナにログインしてnginxの設定を見ても問題なし。しかし、ここで問題があっても対応のしようがない。

コンテナを再起動したり、QNAPを再起動したり、はたまたヤマハのルーターを再起動したり、最近QNAPにインストールしたQVR Proを停止したりとやってみたが、エラーは全く変わらない。どんどん嵌まり出す。

半日が過ぎてほぼ諦めモードになる。QNAPのContainerStationをやめて、さくらインターネットのレンタルサーバーにテストサーバーを移行することまで考えた。

ここで思い出した。ちょっと前にQNAPの設定を変えたことを思い出した。QNAPのアクセスをLAN側しかできないようにしていた。こちらは外部のアクセスをすべて遮断していた。こちらを見直す。

以上、これだけで無事に元に戻った。QNAPのContainerStationとかヤマハのルーターの設定は、全く関係なくてs、そのままでよかった。当たり前だけど、QNAP全体のセキュリティの設定が影響するので気を付けましょうという話しでした。はまり出すと、小さなことを気が付かない。

Redmineに作業記録をつけているので、Redmineのサーバーが飛んだらどうしようと思うのでした。

Sambaをインストールしてファイルサーバーを動かすよりも、サクッとQNAPを入れたほうが簡単、安心、便利でおすすめ。