Maison > développement back-end > Golang > Comment réussir l'intégration de Go-WebSocket avec Apache mod_proxy_wstunnel ?

Comment réussir l'intégration de Go-WebSocket avec Apache mod_proxy_wstunnel ?

Patricia Arquette
Libérer: 2024-12-25 21:26:17
original
928 Les gens l'ont consulté

How to Successfully Integrate Go-WebSocket with Apache mod_proxy_wstunnel?

Intégration de Go-WebSocket derrière Apache mod_proxy_wstunnel

Dans le but d'exploiter les capacités du proxy inverse d'Apache avec go-websocket, un développeur a rencontré plusieurs obstacles.

Apache Configuration

Voici la configuration Apache utilisée :

<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>
Copier après la connexion

Erreurs initiales

Lors de la mise en œuvre initiale, une erreur 403 interdite s'est produite, indiquant un problème avec la vérification de l'origine. Après avoir désactivé la vérification de l'origine, une erreur 400 Bad Request est apparue, signifiant que le serveur de chat ne recevait pas la demande de mise à niveau.

Dépannage

Après avoir consulté diverses sources, le les étapes suivantes ont été prises pour résoudre le problème :

  • Trailing Slash : Comme suggéré par Aralo, une barre oblique finale a été ajoutée au chemin WebSocket (/ws/). Cela garantissait qu'Apache ne gérerait WebSocket qu'avec une requête GET valide.
  • Ordre ProxyPass : Selon la suggestion de James Henstridge, le ProxyPass pour /ws/ a été placé avant la ligne /, modifiant l'ordre dans quelles demandes ont été traitées.
  • Suppression du contrôle d'origine :Le contrôle d'origine dans le La fonction ServeWs() a été identifiée et supprimée, résolvant le problème.

Intégration réussie

Ces modifications ont assuré une intégration réussie de go-websocket derrière Apache mod_proxy_wstunnel. Les journaux d'erreurs Apache ont permis d'identifier et de rectifier les erreurs initiales.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal