バックエンド サーバーとして apache を使用しています。これは、php スクリプトを実行し、nginx を静的コンテンツを処理するリバース プロキシ サーバーとして実行します。いくつかのプロセスの ID を提供し、このプロセスを実行する php スクリプト (かなり長い)。そのプロセスの ID のみをブラウザーに渡す必要があります。
// ...
ob_start();
echo json_encode($arResult); // only this data should be passed to browser
$contentLength = ob_get_length();
header('Connection: close');
header('Content-Length: ' . $contentLength);
ob_end_flush();
ob_flush();
flush();
// then performed a long process
(別の ajax スクリプトでプロセスのステータスを確認します)
これは、apache だけで問題なく動作します。しかし、Apache が nginx の背後にあると問題が発生します。この場合、プロセスが完全に終了した場合にのみ応答を受け取ります。
nginx 設定:
server {
#...
proxy_set_header Connection close;
proxy_pass_header Content-Length;
#...
}
しかし、私はまだ FireBug で Connection keep-alive を取得しています。
nginx に apache からすぐに応答させるにはどうすればよいですか?
質問が明確であることを願っています。
ありがとう。