Linuxの達人の助けが必要です。コメットサーバーを含むWebアプリに取り組んでいます。コメットサーバーはlocalhost:8080で実行され、クライアントが接続するためのURL localhost:8080/long_pollingを公開します。私のウェブアプリはlocalhost:80で実行されます。
私はnginxを使用してnginxからcometサーバー(localhost:8080 / long_pollingにプロキシされたlocalhost:80 / long_polling)にリクエストをプロキシしましたが、このソリューションには2つの不満があります。
- nginxを使用すると、すべてのタイムアウト設定を600秒に変更したにもかかわらず、1分後に504ゲートウェイがタイムアウトします。
- とにかくnginxがcometサーバーにプロキシする必要はありません-nginxプロキシは長期的な接続(おそらく最大30分)用に構築されていません。むしろ、クライアントがコメットサーバーに直接接続できるようにし、コメットサーバーに処理させたいと思います。
だから私の質問は:nginxプロキシを使用せずにlocalhost:8080 / long_pollingをlocalhost:80 / long_pollingに公開できるLinuxのトリックはありますか?何かがあるに違いない。そのため、この質問はおそらくLinuxの第一人者が最もよく答えることができると思います。
/ long_pollingをポート80で公開する必要があるのは、AJAXを使用してポート80に接続できるようにするためです(ajax same-origin-policy)。
これは参考のために私のnginxproxy.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;