私はnginxをリバースプロキシとして使用しており、成功せずにアップストリームサーバー(Apache)の応答からカスタムヘッダーを読み取ろうとしています。 Apacheの応答は次のとおりです。
HTTP/1.0 200 OK
Date: Fri, 14 Sep 2012 20:18:29 GMT
Server: Apache/2.2.17 (Ubuntu)
X-Powered-By: PHP/5.3.5-1ubuntu7.10
Connection: close
Content-Type: application/json; charset=UTF-8
My-custom-header: 1
My-custom-headerから値を読み取り、if句で使用したい:
location / {
// ...
// get My-custom-header value here
// ...
}
これは可能ですか?前もって感謝します。
$ http_name_of_the_header_key
つまり、ヘッダーにOrigin = domain.com
がある場合、$http_Origin
を使用して「domain.com」を取得できます。
Nginxでは、任意のリクエストヘッダーフィールドをサポートします。上記の例では、変数名の最後の部分は、ダッシュがアンダースコアに置き換えられて小文字に変換されたフィールド名です
参照ドキュメント: http://nginx.org/en/docs/http/ngx_http_core_module.html#var_http_
あなたの例では、変数は$http_my_custom_header
になります。
私は同じ問題に直面していました。 $http_my_custom_header
と$sent_http_my_custom_header
の両方を試しましたが、うまくいきませんでした。
$upstream_http_my_custom_header
を使用してこの問題を解決しましたが。
$ http_MY_CUSTOM_HEADERを使用
次のようなものを書くことができます
set my_header $http_MY_CUSTOM_HEADER;
if($my_header != 'some-value') {
#do some thing;
}