Nginxにいくつかのヘッダーを無視させ、プロキシサーバーから隠そうとするのに苦労します。
Nginxに「Cache-Control」および「Server」ヘッダーを非表示にして無視させたいのですが、機能しませんでした。理由はわかりません。
私のconfは次のとおりです:
location / {
proxy_pass http://111.131.50.42;
proxy_hide_header Cache-Control;
expires 60M;
add_header Cache-Control "public";
proxy_ignore_headers Cache-Control;
proxy_hide_header Cache-Control;
access_log off;
}
しかし、それでも、Originの「Cache-Control」ヘッダーと「Server」ヘッダーを受け取っています。
私が間違っていることを知っていますか?
追伸ngx_headers_moreモジュールを使用できません。このモジュールをNginxインストールに追加できません。
ディレクティブproxy_ignore_headers
は、特定の内部動作につながる特別なヘッダーの内容を無視するようnginxに指示します。
「X-Accel-Expires」、「Expires」、「Cache-Control」、「Set-Cookie」、および「Vary」は、応答キャッシュのパラメーターを設定します。
「X-Accel-Redirect」は、指定されたURIへの内部リダイレクトを実行します。
「X-Accel-Limit-Rate」は、クライアントへの応答の送信のレート制限を設定します。
「X-Accel-Buffering」は、応答のバッファリングを有効または無効にします。
「X-Accel-Charset」は、応答の目的の文字セットを設定します。
上流のサーバーからヘッダーを隠したい場合は、proxy_hide_header
を使用する必要があります。 Server
ヘッダーは、Date
、X-Pad
、X-Accel-...
ヘッダーのように、デフォルトではクライアントに送信される応答に渡されません。
だから、これはうまくいくはずです:
location / {
access_log off;
add_header Cache-Control "public";
proxy_pass http://111.131.50.42;
proxy_hide_header Cache-Control;
expires 60M;
}
キャッシュされたデータを含むブラウザーからテストしていないことを確認します。curl
を使用します。