Мы работаем над приложением Ruby on Rails, которое должно использовать веб-узлы html5. На данный момент у нас есть два отдельных «сервера», так сказать: наше основное приложение, работающее на nginx + пассажире, и отдельный сервер с использованием платформы Cramp Pratik Naik (которая работает на Thin) для обработки соединений в сети.Можно ли использовать nginx в качестве обратного прокси-сервера для серверного веб-сервера?
В идеале, когда придет время для развертывания, у нас будет приложение rails, работающее на nginx + пассажире, и сервер websocket будет проксимироваться за nginx, поэтому нам не нужно, чтобы сервер веб-сервера работал на другой порт.
Проблема в том, что в этой настройке кажется, что nginx закрывает соединения с Thin слишком рано. Соединение успешно установлено на тонком сервере, а затем сразу же закрывается кодом ответа 200. Мы предполагаем, что nginx не понимает, что клиент пытается установить долгосрочное соединение для трафика websocket.
Понятно, что я не настолько разбираюсь в настройке nginx, так что даже можно настроить nginx как обратный прокси-сервер для сервера websocket? Или мне нужно ждать, пока nginx предложит поддержку нового материала для рукопожатия для веб-рассылки? Предполагая, что наличие сервера приложений и сервера websocket, прослушивающих порт 80, является обязательным требованием, может это означать, что я должен использовать Thin на отдельном сервере без nginx впереди?
Заранее благодарим за любые советы или предложения. :)
-Джон
Любой, кто до сих пор читает это, не принимает текущий ответ ниже. Прокси-модуль TCP работает хорошо, и ниже приведен ответ на ссылку о том, как его настроить: https://github.com/yaoweibin/nginx_tcp_proxy_module и http://www.letseehere.com/reverse-proxy-web-sockets – crockpotveggies