バックエンドサーバーがダウンした場合、nginxプロキシはキャッシュを使用する必要があります。
これが私の構成です。しかし、バックエンドサーバーをチェックせずにnginxがキャッシュを使用しているようです。
http {
# ...
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_path /tmp/nginx levels=1:2 keys_zone=tmpzone:10m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";
server {
server_name _;
location / {
proxy_connect_timeout 5s;
proxy_read_timeout 5s;
proxy_cache tmpzone;
proxy_cache_valid 200 304 1d;
proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host 'www.example.com';
proxy_pass http://www.example.com;
}
}
}
質問は、バックエンドサーバーが稼働している場合、どのようにプロキシキャッシュをバイパスできますか?また、バックエンドサーバーが稼働している場合、プロキシサーバーはキャッシュをまったく使用しません。
質問は何ですか?
—
ジェニーD
質問は、バックエンドサーバーが稼働している場合、どのようにプロキシキャッシュをバイパスできますか?
—
sweb
すぐに使えるソリューションの1つは、2つの「サーバー」を実行し、1つをキャッシュ付き、もう1つをキャッシュなしにし、アップストリームモジュールnginx.org/en/docs/http/ngx_http_upstream_module.htmlを使用すること です。おそらく、バックエンドが存在するかどうかをチェックしてproxy_cache_bypassを使用できるのが最善の解決策でしょう...動作させる方法がわかりませんが...興味深いケースです。
—
SvennD