0
アップストリームのサーバーからhttp_response codeを確認しようとしていて、アップストリームがダウンしているときにデフォルトの応答コードを渡します。アップストリームがプロキシをアッププロキシしている場合は、すべてのリクエストをプロキシします。Nginx If文を使用してアップストリームサーバーの状態を確認する
私のnginxの(動作しない)設定は私が達成したい何この
server {
listen 80;
server_name auth.example.com;
set $upstream 123.456.789.123:8080;
location @active{
proxy_pass_header Authorization;
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_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
client_max_body_size 10M;
proxy_read_timeout 36000s;
proxy_redirect off;
proxy_pass http://$upstream;
}
location @outage {
return 200 "yass!";
}
location/{
error_page 500 = @outage;
set $200 @active;
if ($http_status != 404){
return 500;
}
if ($http_status = 200) {
return 200;
}
}
のように見える私の上流のサーバがデフォルト200応答を返すダウンしている場合は、簡単です。
私のアップストリームサーバーが利用できる場合は、すべてのリクエストをプロキシしてください。
どのように私はこれを達成することができますか(コード例はクールです:-))nginx。
プロキシからのエラーを記録するには、 'proxy_intercept_errors on;'が必要です。私はあなたのケースでは、上流がダウンしていると思う*応答は 'nginx'から来る。 –