Maison > développement back-end > Golang > Pourquoi ma configuration mod_proxy_wstunnel et Go-websocket échoue-t-elle et comment puis-je y remédier ?

Pourquoi ma configuration mod_proxy_wstunnel et Go-websocket échoue-t-elle et comment puis-je y remédier ?

DDD
Libérer: 2025-01-01 06:58:10
original
543 Les gens l'ont consulté

Why Does My mod_proxy_wstunnel and Go-websocket Setup Fail, and How Can I Fix It?

Mod_proxy_wstunnel et Go-websocket : un problème et sa résolution

Dans le but d'utiliser le mod_proxy_wstunnel d'Apache avec l'implémentation go-websocket, les utilisateurs peut rencontrer des obstacles. Un utilisateur a demandé de l'aide pour configurer les paramètres nécessaires.

Une description détaillée du problème a été fournie : alors que le proxy inverse s'est établi avec succès, la connexion websocket n'a pas pu s'initier. La configuration de l'utilisateur reflétait ce qui suit :

<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

Initialement, l'utilisateur a reçu une réponse « 403 Forbidden », qui suggérait un problème de vérification de l'origine. Après avoir désactivé la vérification de l'origine, l'erreur s'est transformée en « 400 Bad Request », indiquant que le serveur ne recevait pas la demande de mise à niveau.

Après avoir recueilli les recommandations de nombreuses sources, l'utilisateur est arrivé à une solution :

  1. Trailing Slash : Comme Aralo l'a souligné, ajout d'une barre oblique finale au chemin WebSocket ("/ws/") était crucial. Apache semble exiger une requête GET valide pour la gestion de WebSocket.
  2. Ordre ProxyPass : James Henstridge a correctement noté que l'ordre des directives ProxyPass est important. Le ProxyPass pour "/ws/" doit précéder le "/" général.
  3. Suppression de la vérification d'origine : L'exemple de code go-websocket incluait une vérification d'origine dans la fonction ServeWs(), qui a été supprimé.

La mise en œuvre de ces modifications a résolu le problème et l'utilisateur a pu établir avec succès la connexion Websocket derrière Apache. mod_proxy_wstunnel.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal