Home > Backend Development > Golang > How to Successfully Integrate Go-WebSocket with Apache mod_proxy_wstunnel?

How to Successfully Integrate Go-WebSocket with Apache mod_proxy_wstunnel?

Patricia Arquette
Release: 2024-12-25 21:26:17
Original
961 people have browsed it

How to Successfully Integrate Go-WebSocket with Apache mod_proxy_wstunnel?

Integrating 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>
Copy after login

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template