2016-06-23 15 views
0

Mein Server hat 2 IPs (ip1 & ip2) Ich habe vor kurzem ip2 hinzugefügt. Wenn ich versuche, meinen Tornado websocketserver auf ip1 zu öffnen (wo apache2 läuft), ist alles in Ordnung, ich spezifiziere einen Port z.B. 22000 und kann auf meine socket über wss://domain.tld:22000/subTornado sicher websocket timeout

jedoch so schnell verbinden, wie ich Tornado auf IP2 hört konfiguriert (wobei Apache nicht läuft), weil ich den Port 443 verwenden, die von Apache auf IP1 blockiert Ich kann keine Verbindung über wss://sockets.domain.tld:443/sub herstellen. Die DNS A-Aufzeichnung zeigt auf ip2.

Die Verbindung läuft ab. Egal welchen Port oder welches Protokoll (wss/ws) ich verwende.


Mein Python-Code:

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() 

Mein Server auf Ubuntu 12.2 läuft, ich die Ports geöffnet und überprüft mit einem externen Tool, wenn sie geöffnet sind.

enter image description here

Wie kann ich dieses Problem beheben? Hat es etwas mit meinem Server zu tun?

UPDATE ich ziemlich sicher bin, es mit http_server.bind(...) zu tun hat, wird der Code mit .listen(port) zu arbeiten, aber IP1 und binden funktioniert auch nicht.

Antwort

2

Nach the documentation, nach dem Anruf bind, sollten Sie start auf dem Server aufrufen. Also

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

sollte funktionieren.

Verwandte Themen