nginx+php-fpmにfsockopenでリクエストを送信すると、Nginxのログにステータスコード499が記録される
サイトに設置しているPHPにアクセスされた際に、アクセス解析用のPHPを非同期で実行させするのに、GET/POSTで引数を渡せるfsockopenを利用しています。
これを下記のよう実装するとapache+phpの環境だと問題なく動作しますが、nginx+php-fpmの環境だと動作しません。
その時のnginxのアクセスログを見ると、解析用のPHPに499のステータスコードが表示されています。また、phpのエラーログには何も表示されません。
(apache+phpの環境では200のステータスコードで、解析用PHPは実行されます。)
対応方法や問題点などありましたら、ありますでしょうか?
$host = "192.168.18.10"; // 解析用のサーバ
$port = "80";
$script = "analytics.php"; // 解析用のPHP
$param = "aflag=on";
$url = "http://".$host."/".$script."?".$param;
$fp = @fsockopen( $host , $port , $errno , $errstr ,30);
if( !$fp )
{ return false; }
$string = 'GET /'.$script."?".$param . ' HTTP/1.1' . "\r\n";
$string .= 'HOST: ' . $host . "\r\n";
$string .= 'User-Agent: PHP/' . phpversion() . "\r\n";
$string .= 'Content-Type: application/x-www-form-urlencoded' . "\r\n";
$string .= 'Content-Length: ' . strlen( $param ) . "\r\n";
$string .= 'Connection: Close' . "\r\n";
$string .= "\r\n";
$string .= $param . "\r\n";
fwrite( $fp , $string );
fclose( $fp );