我们正在开发一个Ruby on Rails应用程序,需要利用html5 websockets。目前,我们有两个独立的“服务器”:运行在nginx+passenger上的主应用程序以及使用Pratik Naik的Cramp框架(运行在Thin上)处理websocket连接的单独服务器。
理想情况下,在部署时,我们将在nginx+passenger上运行rails应用程序,并将websocket服务器代理到nginx后面,这样我们就不需要在不同的端口上运行websocket服务器。
问题是,在这种设置中,nginx似乎会过早地关闭与Thin的连接。连接成功建立到Thin服务器,然后立即使用200响应代码关闭。我们的猜测是nginx没有意识到客户端试图建立一个长时间运行的websocket流量连接。
坦白说,我对nginx配置并不是很熟悉,所以,nginx是否可以配置为websocket服务器的反向代理呢?还是我必须等待nginx提供对新的websocket握手协议的支持?假设让应用程序服务器和websocket服务器都监听端口80是必需的,那么现在是否意味着我必须让Thin在没有nginx的情况下运行在单独的服务器上?
非常感谢任何建议或建议。:)
-John
理想情况下,在部署时,我们将在nginx+passenger上运行rails应用程序,并将websocket服务器代理到nginx后面,这样我们就不需要在不同的端口上运行websocket服务器。
问题是,在这种设置中,nginx似乎会过早地关闭与Thin的连接。连接成功建立到Thin服务器,然后立即使用200响应代码关闭。我们的猜测是nginx没有意识到客户端试图建立一个长时间运行的websocket流量连接。
坦白说,我对nginx配置并不是很熟悉,所以,nginx是否可以配置为websocket服务器的反向代理呢?还是我必须等待nginx提供对新的websocket握手协议的支持?假设让应用程序服务器和websocket服务器都监听端口80是必需的,那么现在是否意味着我必须让Thin在没有nginx的情况下运行在单独的服务器上?
非常感谢任何建议或建议。:)
-John