私は、GETリクエストを扱うための設定をしています。これは、解析を処理し、クエリ文字列を解析してロギングするためにうまく動作するピクセルをレンダリングします。追加のサードパーティのデータストリームを使用する場合、リクエスト本体の内部に予期されるログ可能な形式のJSONを持つ特定のURLへのPOSTリクエストを処理する必要があります。私はproxy_pass
のセカンダリサーバを使いたくないだけで、GETリクエストのような関連するログファイルにすべてのレスポンスを記録したいだけです。 (素晴らしい作品)
GETリクエスト:ここ
location ^~ /rl.gif {
set $rl_lcid $arg_lcid;
if ($http_cookie ~* "lcid=(.*\S)")
{
set $rl_lcid $cookie_lcid;
}
empty_gif;
log_format my_tracking '{ "guid" : "$rl_lcid", "data" : "$arg__rlcdnsegs" }';
access_log /mnt/logs/nginx/my.access.log my_tracking;
rewrite ^(.*)$ http://my/url?id=$cookie_lcid? redirect;
}
は私がしようとしているものをちょっとです:ない POSTリクエスト(私は次のようなルックスを使用しているいくつかのコードのスニペット動作しません):
location /bk {
log_format bk_tracking $request_body;
access_log /mnt/logs/nginx/bk.access.log bk_tracking;
}
カーリングcurl http://myurl/bk -d name=example
私に404ページが見つかりません。
は、次に私が試した:
location /bk.gif {
empty_gif;
log_format bk_tracking $request_body;
access_log /mnt/logs/nginx/bk.access.log bk_tracking;
}
カーリングcurl http://myurl/bk.gif -d name=example
は私に405 Not Allowed
を与えます。
私の現在のバージョンはnginx/0.7.62
です。正しい方向への助けは非常に感謝しています!ありがとう!
location /bk {
if ($request_method != POST) {
return 405;
}
proxy_pass $scheme://127.0.0.1:$server_port/dummy;
log_format my_tracking $request_body;
access_log /mnt/logs/nginx/my.access.log my_tracking;
}
location /dummy { set $test 0; }
それは正しくポストデータのログ記録が、依頼者側に404が返されます。
UPDATE は、だから今私のポストは次のようになります。私は200などを返すために、上記のコードを変更する場合:
location /bk {
if ($request_method != POST) {
return 405;
}
proxy_pass $scheme://127.0.0.1:$server_port/dummy;
log_format my_tracking $request_body;
access_log /mnt/logs/nginx/my.access.log my_tracking;
return 200;
}
location /dummy { set $test 0; }
そして、それは正しく200
を返しませんが、もはやポストデータを記録します。
別のアップデート Kindaが実用的な解決策を見つけました。うまくいけば、これは途中で他の人を助けることができます。
あなたはこれでどこに行くのですか?私は同様の問題に反対している。 –