2012-02-06 3 views
1

POSTデータをNGINXに記録し、$ request_bodyを使用して同じデータを記録します。NGINXでのPOSTデータのロギングと不要なパラメータの回避

しかし、ログに記録したくないPOSTフィールド(パスワード、電子メールなど)があります。投稿データを解析することは可能ですか、PHP/RUBYや他のスクリプトに非同期にデータを送信して、そこでPOSTデータを解析することはできますか?

答えて

1

私はNginx LUA moduleを使用することによって、これを達成しました。そしてluaスクリプトでngx.req.get_post_args()を呼び出すことで、私はテーブル(LUAの配列)の形で投稿コンテンツを取得することができました。したがって、不要なパラメータを削除し、それをログに記録することでこの問題を解決しました。

1

デフォルトのモジュールでポストパラメータに直接アクセスすることはできませんが、これを達成するために少しハックを試みることができます。これは一例です:

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(); 
?> 
関連する問題