2013-03-09 2 views
1

У меня есть сервер веб-сервера торнадо, который отлично работает на моей локальной машине. но когда я развертываю его на веб-сервере и запускаю его с помощью супервизора, я не могу подключиться к веб-сайтам javascript. Я попытался открыть порт в брандмауэре, но не работает. Я также попытался использовать прокси-сервер с Nginx (и модуль TCP)Tornado WebSocket Server без прокси

tcp { 
    upstream websockets { 
     server abc.de.efg.hij:23581; 
     check interval=3000 rise=2 fall=5 timeout=1000; 
    } 

    server { 
     listen abc.de.efg.hij:45645; 
     server_name _; 

     tcp_nodelay on; 
     proxy_pass websockets; 
    } 
} 

но также не работает. что здесь не так?

+0

Попробуйте использовать 'haproxy'. –

+0

Теперь вы можете использовать Nginx в качестве обратного прокси для веб-сайтов. См. [Proxying-websockets-with-nginx] (https://chrislea.com/2013/02/23/proxying-websockets-with-nginx/) для практического руководства. – xzvkm

ответ

0

Вы должны добавить раздел дополнительные «местоположение» для WebSocket, чтобы убедиться, что заголовки обновления передаются правильно:

location /YOUR_SOCKET_ENDPOINT/ { 
    proxy_pass http://backend; 
    proxy_http_version 1.1; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
} 

Docs здесь: http://nginx.org/en/docs/http/websocket.html

Смежные вопросы