Sal*_*ake 6 php apache nginx long-polling
我有apache作为后端服务器,运行php脚本和nginx作为反向代理服务器,处理静态内容.一个php脚本,它给我一些进程的ID,然后执行这个过程(很长).我只需要向浏览器传递该进程的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
Run Code Online (Sandbox Code Playgroud)
(我用另一个ajax脚本检查进程的状态)
这在单独的apache下工作正常.但是当apache落后于nginx时我遇到了问题.在这种情况下,我只有在完成过程完成时才得到响应.
nginx设置:
server {
#...
proxy_set_header Connection close;
proxy_pass_header Content-Length;
#...
}
Run Code Online (Sandbox Code Playgroud)
但我仍然在FireBug中获得了Connection keep-alive.
如何让nginx立即给出apache的响应?
希望问题很清楚.
谢谢.
| 归档时间: |
|
| 查看次数: |
4147 次 |
| 最近记录: |