Ich verwende nginx, um eine Instanz einer PHP-Anwendung bereitzustellen, und führe gleichzeitig eine Ratchet-App aus, um eine Websocket-Verbindung abzuhören. Das Problem ist, dass beide Instanzen denselben Port verwenden (80).
Wie richte ich den Server so ein, dass ich beide bedienen kann?
Bearbeiten: Ich bin gerade zurückgekommen, um zu sehen, dass die Frage mehrmals abgelehnt wurde. Verständlicherweise habe ich die Frage nicht wirklich klar gestellt. Ich entschuldige mich dafür. Ich habe jedoch meine Due Diligence durchgeführt. Ich werde versuchen zu klären, was ich gefragt habe. Möglicherweise habe ich einige Aspekte des Websocket-Protokolls falsch verstanden. In diesem Fall korrigieren Sie mich bitte:
Ich weiß genau, dass es nur einen Prozess geben kann, der einen bestimmten Port abhört. Ich habe tatsächlich ein Problem und die ganze Websocket-Sache. Soweit ich weiß, beginnt eine Websocket-Anfrage mit einem HTTP-Handshake, nach dem es einen Mechanismus gibt um diese Sitzung auf den spezifischen Port zu aktualisieren.
Nach dem, was ich gelesen habe, scheint dieser Upgrade-Mechanismus vom Webserver verwaltet zu werden. Wie konfiguriere ich nginx für diesen Prozess?
Alles in allem ist das einzige, was mir Sorgen macht, wenn der Websocket-Server auf einem anderen Port als 80 ausgeführt wird, die Möglichkeit, dass der Port blockiert wird. Ist diese Sorge unbegründet? Irgendwelche Ratschläge, wie ich das einrichten soll?
quelle
Antworten:
Eine schrecklich geschriebene Frage, aber der Begriff, den ich suchte, war Reverse Proxy.
Ebenso wie nginx unterschiedliche Anforderungen basierend auf dem Pfad oder dem Hostnamen an mehrere Instanzen der Webanwendung weiterleiten kann, kann es auch so konfiguriert werden, dass die Anforderung an eine Websocket-Serverinstanz "weitergeleitet" wird. z.B:
HTTP-Anforderungen an
http://hostname
werden auf der üblichen HTML-Seite zugestellt, während die Websocket-Verbindungwss://hostname/socket
an an die Websocket-Instanz auf demselben Server weitergeleitet wird, der Port 8000 überwacht.quelle
proxy_read_timeout
undproxy_write_timeout
trennt bei Inaktivität zu verhindern.Auf einem Server können nicht zwei verschiedene Softwareprogramme denselben Port / dieselbe IP-Adresse überwachen. Wie würde der Datenverkehr andernfalls an die Anwendung XYZ weitergeleitet, wenn mehrere Anwendungen an denselben Port gebunden werden könnten?
Weitere Informationen zu Ports finden Sie unter Port (Computernetzwerk).
Was Sie tun müssen, ist eine der folgenden Optionen:
Ihre Firewall muss nur entsprechend Ihrer Einrichtung konfiguriert werden.
quelle
Sie haben zwei Möglichkeiten:
quelle