Linux-EC2サーバーにNginxコンテナをセットアップしました。それが今、ポート80に異なるポートで要求を渡し2台のNginxコンテナを、フェイルオーバーを使用したアクティブ/パッシブ設定でリバースプロキシとして設定するにはどうすればいいですか?
server {
listen 80;
server_name client-dev.com;
location/{
proxy_pass http://dev-client.1234.io:5001/;
proxy_redirect off;
##proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
server {
listen 80;
server_name client-test.com;
location/{
proxy_pass http://test-client-1234.io:5005/;
proxy_redirect off;
##proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
、私はアクティブ - パッシブモードで冗長nginxのを行う必要があります。次のように私のnginxの設定ファイルです。 Nginxのコンテナがダウン/ストップした場合。
これを行うには、同じサーバーに別のNginxコンテナを設定する必要がありますか?もしそうなら、フェールオーバーを自動的に行うためにどのようにセットアップする必要がありますか?
私は "上流"オプションを見てきましたが、私が見つけたように、このケースではうまくいかないでしょう。私が持っているproxy_passは外部と動的なもので、ドッカークラウドのスクリプトを使って取得します。
"docker-gen"という別の方法がありますが、どれくらい有益なのか分かりませんし、もしあれば別の方法を使うことを好みますか?
ご協力いただければ幸いです。
ありがとうございます。私はちょうど問題に直面しています:私のnginxは、サービスURLの1つが動作していないため停止しています、そして、このエラーを出します。任意のヘルプは非常に高く評価されるだろう。 – Matrix
これは通常、アップストリームサーバとして指定したDNS名を解決できないことを意味します。これをテストするには、nginxサーバにログオンし、提供されているアップストリームサーバにpingを実行し、名前解決が正しく完了したかどうかを確認してください。ドッカーコンテナが 'docker exec -it'を実行してシェルを取得しようとした場合、 。 –
ドッカーサービスが停止しているときは、ドッカーのexecを使用できません。コンテナが実行されている場合には使用できます。そのプロキシパスはダウンしているため解決できません。私はそれを修正することができますどのように動作する必要があるnginxの設定ファイルに他の多くのサーバーがあります – Matrix