Heim > Backend-Entwicklung > Golang > Wie integriere ich Go-WebSocket erfolgreich in Apache mod_proxy_wstunnel?

Wie integriere ich Go-WebSocket erfolgreich in Apache mod_proxy_wstunnel?

Patricia Arquette
Freigeben: 2024-12-25 21:26:17
Original
927 Leute haben es durchsucht

How to Successfully Integrate Go-WebSocket with Apache mod_proxy_wstunnel?

Integration von Go-WebSocket hinter Apache mod_proxy_wstunnel

Bei dem Versuch, die Fähigkeiten des Reverse-Proxys von Apache mit go-websocket zu nutzen, stieß ein Entwickler darauf mehrere Hürden.

Apache Konfiguration

Folgend ist die verwendete Apache-Konfiguration:

<VirtualHost *:80>
    DocumentRoot /var/www/foobar
    ServerName foobar.com
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
    ProxyPass /ws/ ws://localhost:8080/ws/
    ProxyPassReverse /ws/ ws://localhost:8080/ws/
    ErrorLog logs/error_log-foobar
    CustomLog logs/access_log-foobar common
    LogLevel debug
</VirtualHost>
Nach dem Login kopieren

Anfängliche Fehler

Bei der ersten Implementierung ist ein 403 Forbidden-Fehler aufgetreten. weist auf ein Problem mit der Herkunftsprüfung hin. Nach dem Deaktivieren der Ursprungsprüfung trat ein 400 Bad Request-Fehler auf, der darauf hindeutet, dass der Chat-Server die Upgrade-Anfrage nicht erhalten hat.

Fehlerbehebung

Nach Rücksprache mit verschiedenen Quellen wurde die Folgende Schritte wurden unternommen, um das Problem zu beheben:

  • Trailing Slash: As Auf Vorschlag von Aralo wurde dem WebSocket-Pfad (/ws/) ein abschließender Schrägstrich hinzugefügt. Dadurch wurde sichergestellt, dass Apache WebSocket nur mit einer gültigen GET-Anfrage verarbeiten würde.
  • ProxyPass-Reihenfolge: Gemäß dem Vorschlag von James Henstridge wurde der ProxyPass für /ws/ vor der /-Zeile platziert, wodurch die Reihenfolge geändert wurde welche Anfragen bearbeitet wurden.
  • Entfernung der Ursprungsprüfung:Die Ursprungsprüfung innerhalb der Die Funktion ServeWs() wurde identifiziert und entfernt, wodurch das Problem behoben wurde.

Erfolgreiche Integration

Diese Änderungen stellten eine erfolgreiche Integration von go-websocket hinter Apache mod_proxy_wstunnel sicher. Die Apache-Fehlerprotokolle halfen dabei, die ersten Fehler zu identifizieren und zu beheben.

Das obige ist der detaillierte Inhalt vonWie integriere ich Go-WebSocket erfolgreich in Apache mod_proxy_wstunnel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage