POSTデータをNGINXに記録し、$ request_bodyを使用して同じデータを記録します。NGINXでのPOSTデータのロギングと不要なパラメータの回避
しかし、ログに記録したくないPOSTフィールド(パスワード、電子メールなど)があります。投稿データを解析することは可能ですか、PHP/RUBYや他のスクリプトに非同期にデータを送信して、そこでPOSTデータを解析することはできますか?
POSTデータをNGINXに記録し、$ request_bodyを使用して同じデータを記録します。NGINXでのPOSTデータのロギングと不要なパラメータの回避
しかし、ログに記録したくないPOSTフィールド(パスワード、電子メールなど)があります。投稿データを解析することは可能ですか、PHP/RUBYや他のスクリプトに非同期にデータを送信して、そこでPOSTデータを解析することはできますか?
私はNginx LUA moduleを使用することによって、これを達成しました。そしてluaスクリプトでngx.req.get_post_args()
を呼び出すことで、私はテーブル(LUAの配列)の形で投稿コンテンツを取得することができました。したがって、不要なパラメータを削除し、それをログに記録することでこの問題を解決しました。
デフォルトのモジュールでポストパラメータに直接アクセスすることはできませんが、これを達成するために少しハックを試みることができます。これは一例です:
location /forPost {
try_files /logger.php $uri;
}
スクリプトは常に404のステータスを返す必要があり、これはexampeです:
<?php
if (isset($_POST['data'])) {
logger($_POST['data']);
}
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
header("Status: 404 Not Found")
die();
?>