次のNginxリバースプロキシ設定をDockerイメージに書き込もうとします。
server {
listen 80;
server_name 203.0.113.2;
proxy_set_header X-Real-IP $remote_addr; # pass on real client IP
location / {
proxy_pass http://203.0.113.1:3000;
}
}
現在はボリュームに入れて、次のようにマッピングします。
-v nginx-data:/etc/nginx/conf.d/
これは機能し、起動時にコンテナはリバースプロキシとして実行されますが、ベーキングすると次のようになります。
ドッカーファイル
FROM nginx
COPY gogs.conf /etc/nginx/conf.d/gogs.conf
次のように画像からコンテナを起動します。
docker run --name gogs-nginx-container -d gogs-nginx
最後に、指定されたIPアドレスを介してアクセスすると、http://172.17.0.3/
「Nginxへようこそ」ページが表示されますが203.0.113.1:3000
、
この問題を解決する方法についてのアイデアはありますか?
答え1
Nginxは実行中のIPアドレスに「敏感」です。私の設定では、server_name 203.0.113.2;
コンテナの起動時にそのIPアドレスから起動する必要があります。そうしないと、プロキシ設定が実行されないように設定しました。したがって、このコマンドはトリックを実行します。
docker run --name gogs-nginx-proxy --net mk1net --ip 203.0.113.2 -d gogs-nginx