Heim > Betrieb und Instandhaltung > Nginx > So konfigurieren Sie den Socket-Weiterleitungsport von Nginx

So konfigurieren Sie den Socket-Weiterleitungsport von Nginx

PHPz
Freigeben: 2023-05-24 11:37:06
nach vorne
2637 Leute haben es durchsucht

nginx gängige Szenarien für die Weiterleitung von Socket-Ports: Online-Lernanwendungen fügen zusätzlich zu den regulären Funktionen eine Chatroom-Funktion hinzu. Gleichzeitig wählt das Backend swoole als Dienstanbieter aus ip:port, nginx muss für die Weiterleitung verwendet werden.

Unter normalen Umständen können wir einen Socket-Link direkt auf der Benutzerseite einrichten, aber ein solcher Vorgang macht den Port offen und birgt bestimmte Sicherheitsrisiken, die den Port verbergen können. Ein weiteres Problem besteht darin, dass einige Header-Parameter während des Weiterleitungsprozesses auch zum Socket-Dienstanbieter gebracht werden müssen. Andere benötigen nur Nginx, um die Konvertierung vom regulären Protokoll zum WebSocket durchzuführen.

Dabei ist „Upgrade“ ein Hop-by-Hop-Header und kann nicht vom Client an den Proxy-Server weitergeleitet werden. Über den Weiterleitungs-Proxy kann der Client die Verbindungsmethode verwenden, um dieses Problem zu vermeiden. Dies funktioniert jedoch nicht mit Reverse-Proxys, da der Client keinen Proxyserver kennt und eine spezielle Behandlung auf dem Proxyserver erfordert. Gleichzeitig kann der Hop-by-Hop-Header mit „Upgrade“ und „Verbindung“ nicht übergeben werden, daher müssen Sie bei der Konvertierung in Websocket diese beiden Parameter mitbringen: Beispiel:

location /chat/ {
  proxy_pass http://backend;
  proxy_http_version 1.1;
  proxy_set_header upgrade $http_upgrade;
  proxy_set_header connection "upgrade";
}
Nach dem Login kopieren

Erweitert: „Verbindung“ weiterleiten Header-Feld an den Proxy-Server. Der Wert hängt vom Feldwert „Upgrade“ des Client-Anfrage-Headers ab. Zum Beispiel:

http {
  map $http_upgrade $connection_upgrade {
    default upgrade;
    ''   close;
  }

  server {
    ...

    location /chat/ {
      proxy_pass http://backend;
      proxy_http_version 1.1;
      proxy_set_header upgrade $http_upgrade;
      proxy_set_header connection $connection_upgrade;
    }
  }
Nach dem Login kopieren

Hinweis: http://backend im Beispiel ist eine Gruppe von Servern mit Lastausgleich, die als Proxy_Pass http://127.0.0.1:9501 geschrieben werden können Das. Darüber hinaus werden Links, die innerhalb von 60 Sekunden keine Daten liefern, standardmäßig geschlossen, was mit der Direktive „proxy_read_timeout“ erweitert werden kann. Oder der Proxyserver kann so konfiguriert werden, dass er regelmäßig Ping-Frames sendet, um das Timeout zurückzusetzen und zu prüfen, ob der Link verfügbar ist.

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie den Socket-Weiterleitungsport von Nginx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage