2016-06-23 3 views
0

Мой сервер получил 2 Ip's (ip1 & ip2) Недавно я добавил ip2. Когда я пытаюсь открыть свой websocketserver tornado на ip1 (где работает apache2) все в порядке, я указываю порт, например. 22000 и может подключаться к моей socket через wss://domain.tld:22000/subTornado secure websocket timeout

Однако, как только я настроен смерч слушать на ip2 (где апач не работает), потому что я должен использовать порт 443, который заблокирован апачом на ip1 , Я не могу подключиться к нему через wss://sockets.domain.tld:443/sub. DNS A запись указывает на ip2.

Соединения раз. Независимо от того, какой порт или протокол (wss/ws) я использую.


Мой код питона:

from tornado import web 
from tornado import ioloop 
from tornado import websocket 
from tornado import httpserver 
import ssl 
import json 
import random 
import re 
import os 

application = web.Application([(r"/sub", Client)]) 
http_server = httpserver.HTTPServer(application, ssl_options = { 
    "certfile": os.path.join(LIB_DIR, "certificate.crt"), 
    "keyfile": os.path.join(LIB_DIR, "certificate.key"), 
}) 
http_server.bind(443, address = "ip2") 
print("Listening to ip2:443") 
ioloop.IOLoop.current().start() 

Мой сервер работает на Ubuntu 12.2, я открыл порты и проверить с помощью внешнего инструмента, если они открыты.

enter image description here

Как я могу это исправить? Это как-то связано с моим сервером?

UPDATE Я совершенно уверен, что он должен делать с http_server.bind(...), код работает с .listen(port), но ip1 и связывают это также не работает.

ответ

2

Согласно the documentation, после звонка в bind, вы должны позвонить по телефону start на сервер. Таким образом,

http_server.bind(443, address = "ip2") 
print("Listening to ip2:443") 
http_server.start() 
ioloop.IOLoop.current().start() 

должно работать.

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

  • Нет связанных вопросов^_^