特定のnginx設定に問題があります。シナリオは次のようなものです:アプリケーションは、nginxプロキシ経由でcouchdbサービスにアクセスする必要があります。 nginxは、バックエンドにアクセスするために認証ヘッダを設定する必要があります。問題は、バックエンドのサービスのエンドポイントのDNSが時々変更され、その結果、nginxをリロードするまでサービスが停止するということです。ダイナミックnginxアップストリームが認証ヘッダーで動作しない
アップストリームを変数として設定しようとしていますが、そのときに認証が機能しなくなり、バックエンドから403が返されます。ちょうどupstreamディレクティブを使用するとうまく動作します。上流変数には正しい値があり、ログにはエラーはありません。
以下の設定の抜粋:
set $backend url.to.backend;
location/{
proxy_pass https://$backend/api;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host url.to.backend;
proxy_set_header Authorization "Basic <authorization_gibberish>";
proxy_temp_path /mnt/nginx_proxy;
}
すべてのヘルプは理解されるであろう。