我需要一些linux专家的帮助。我正在研究一个包含彗星服务器的webapp。彗星服务器在localhost:8080上运行,并为客户端提供url localhost:8080/long_polling连接。我的webapp在localhost:80上运行。nginx代理彗星
我nginx的用于代理请求从nginx的彗星服务器(本地主机:80/long_polling代理为localhost:8080/long_polling),但是,我有两个抱怨这种解决方案:
- nginx的给我一分钟后504网关超时,即使我改变了每次单次超时设置到600秒
- 我真的不希望nginx必须代理到彗星服务器 - 无论如何nginx代理是没有建立持久的连接(可能长达半个小时)。我宁愿让客户直接连接到彗星服务器,让彗星服务器处理它。
所以我的问题是:是否有任何Linux技巧,允许我暴露localhost:8080/long_polling到localhost:80/long_polling而不使用nginx代理?一定有东西。这就是为什么我认为这个问题可能最好由一个Linux专家来回答。
我需要/ long_polling在端口80上公开的原因是我可以使用AJAX连接到它(ajax same-origin-policy)。
这是我参考nginx的proxy.conf:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
send_timeout 600;
proxy_buffering off;
那么,如果nginx使用那么少量的内存,那么我会很乐意使用nginx作为前端代理服务器。 只需要摆脱大约一分钟后发生的“504 Gateway Time-Out”错误(总是在大约55-65秒后发生)。 感谢您的回答。 我使用node.js作为COMET服务器。 – Chris 2009-07-21 17:41:44