クライアントのリクエストからのカスタムヘッダーをログに記録したい。 「$ http_my_header」をlog_formatに追加しました。POSTリクエストに対しては適切に記録されます。一方、すべてのGETリクエストは、空の値で記録されます。
GETリクエストの例:
GET /pws HTTP/1.1
upgrade: websocket
connection: Upgrade
sec-websocket-key: XXXX
Host: XXXX
sec-websocket-Origin: XXXX
sec-websocket-version: 13
X-Plumbr-sessionId: XXXX
X-Plumbr-accountId: XXXX
X-Plumbr-build: SNAPSHOT
私のnginx log_formatには含まれています
"$http_x_plumbr_accountid" "$http_x_plumbr_build"
GETリクエストのロギングヘッダーには特別な設定が必要ですか?
これがどれだけ役立つかはわかりませんが、その価値のために、標準のリクエスト変数を介してリクエストヘッダーを設定し、IIS =サーバー、それらが正しく受信および解釈されました。これらの変数(または必要な変数)を利用して、Nginxのドキュメントを参照し、利用可能なすべての変数を確認することで、アクセスログに含めることで同じことができると思います。これが私が使っていたサーバーブロックです:
server {
listen 8001;
server_name localhost;
location / {
proxy_set_header x-client-IP $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header Host $http_Host;
proxy_pass http://127.0.0.1:80/;
}
}
ログ形式を設定し、ヘッダー値を作成または取得する場所に応じて、同じことが機能するはずです。リクエストタイプのロジックを使用することもできます。これは、GETが機能しているようで、POSTが予期しない動作をしている場合に確認する必要があります。