


How to Successfully Integrate Go-WebSocket with Apache mod_proxy_wstunnel?
Dec 25, 2024 pm 09:26 PMIntegrating Go-WebSocket behind Apache mod_proxy_wstunnel
In an attempt to harness the capabilities of Apache's reverse proxy with go-websocket, a developer encountered several hurdles.
Apache Configuration
Following is the Apache configuration used:
<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>
Initial Errors
Upon initial implementation, a 403 Forbidden error occurred, indicating an issue with origin check. After disabling the origin check, a 400 Bad Request error emerged, signifying that the chat server was not receiving the upgrade request.
Troubleshooting
After consulting various sources, the following steps were taken to resolve the issue:
- Trailing Slash: As suggested by Aralo, a trailing slash was added to the WebSocket path (/ws/). This ensured Apache would only handle WebSocket with a valid GET request.
- ProxyPass Order: Per James Henstridge's suggestion, the ProxyPass for /ws/ was placed before the / line, altering the order in which requests were handled.
- Origin Check Removal: The origin check within the ServeWs() function was identified and removed, resolving the issue.
Successful Integration
These modifications ensured successful integration of go-websocket behind Apache mod_proxy_wstunnel. The Apache error logs helped identify and rectify the initial errors.
The above is the detailed content of How to Successfully Integrate Go-WebSocket with Apache mod_proxy_wstunnel?. For more information, please follow other related articles on the PHP Chinese website!

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Go language pack import: What is the difference between underscore and without underscore?

How to implement short-term information transfer between pages in the Beego framework?

How to convert MySQL query result List into a custom structure slice in Go language?

How do I write mock objects and stubs for testing in Go?

How can I define custom type constraints for generics in Go?

How can I use tracing tools to understand the execution flow of my Go applications?

How to write files in Go language conveniently?
