>백엔드 개발 >Golang >Go-WebSocket을 Apache mod_proxy_wstunnel과 성공적으로 통합하는 방법은 무엇입니까?

Go-WebSocket을 Apache mod_proxy_wstunnel과 성공적으로 통합하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-25 21:26:17928검색

How to Successfully Integrate Go-WebSocket with Apache mod_proxy_wstunnel?

Apache mod_proxy_wstunnel 뒤에 Go-WebSocket 통합

go-websocket으로 Apache의 역방향 프록시 기능을 활용하려는 시도에서 개발자는 몇 가지 장애물.

Apache 구성

다음은 사용된 Apache 구성입니다.

<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>

초기 오류

초기 구현 시 403 Forbidden 오류가 발생했습니다. 원산지 확인에 문제가 있음을 나타냅니다. 오리진 확인을 비활성화한 후 채팅 서버가 업그레이드 요청을 수신하지 못했다는 것을 나타내는 400 Bad Request 오류가 나타났습니다.

문제 해결

다양한 소스를 참조한 후, 문제를 해결하기 위해 다음 단계를 수행했습니다.

  • 후행 슬래시: Aralo가 제안한 대로 WebSocket 경로(/ws/)에 후행 슬래시가 추가되었습니다. 이렇게 하면 Apache가 유효한 GET 요청이 있는 WebSocket만 처리할 수 있습니다.
  • ProxyPass 순서: James Henstridge의 제안에 따라 /ws/에 대한 ProxyPass가 / 줄 앞에 배치되어 순서가 변경되었습니다. 처리된 요청입니다.
  • 원본 확인 제거: ServeWs() 함수가 식별 및 제거되어 문제가 해결되었습니다.

성공적인 통합

이러한 수정으로 Apache mod_proxy_wstunnel 뒤에 go-websocket이 성공적으로 통합되었습니다. Apache 오류 로그는 초기 오류를 식별하고 수정하는 데 도움이 되었습니다.

위 내용은 Go-WebSocket을 Apache mod_proxy_wstunnel과 성공적으로 통합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.