Мне нужна помощь от некоторых гуру linux. Я работаю над webapp, который включает в себя кометный сервер. Сервер кометы работает на localhost: 8080 и предоставляет URL-адрес url: 8080/long_polling для подключения клиентов. Мой webapp работает на localhost: 80.
Я использовал nginx для прокси-запросов от nginx на кометном сервере (localhost: 80/long_polling прокси на localhost: 8080/long_polling), однако у меня есть две проблемы с этим решением:
- nginx дает мне 504 тайм-аут Gateway через минуту, хотя я изменил КАЖДОЕ одиночное время ожидания до 600 секунд.
- Я не хочу, чтобы nginx получал прокси-сервер на кометном сервере - прокси-сервер nginx не создан для длительных подключений (возможно, до получаса). Я бы предпочел позволить клиентам напрямую подключиться к серверу комет и позволить кометному серверу справиться с ним.
Итак, мой вопрос: есть ли какой-либо linux-трюк, который позволяет мне показывать localhost: 8080/long_polling на localhost: 80/long_polling без использования прокси-сервера nginx? Должно быть что-то. Вот почему я думаю, что этот вопрос, вероятно, лучше всего ответит гуру linux.
Причина, по которой мне нужно /long _polling, отображаться на порту 80, заключается в том, что я могу использовать AJAX для подключения к ней (политика ajax same-origin).
Это мой 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;