2016-08-08 28 views
2

검색 한 적이 있지만 내 websocket을 wss : //, 에 연결할 수 없습니다. wss : //domain.com : 9090을 프록시하는 방법이 있다는 것을 알았습니다. //domain.com : 9090 서버가 WS에/웹 소켓과 종료 아파치 설정에서이 코드는 어떤 주소에서 요청을 보내드립니다프록시 websocket wss : // ws : // apache

ProxyPass /websocket ws://domain.com:9090 
ProxyPassReverse /websocket ws://domain.com:9090 

을 실행중인 아파치 그것에 프록시를 적용하고 어디 정상 WS에 요청을 리디렉션 : //domain.com:9090 예 : WS : // 웹 소켓은 WS 될 것입니다 : //domain.com : 9090 내가 WSS을 위해 그것을 할

: // 또한 전직 WSS : // WebSocket을 수행해야합니다 포인트는 WS합니다 : //domain.com가 :

9090이 작업을 dosnt 내가 브라우저 콘솔에서이 오류를 얻을 :

failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED 

어떤 실수가 여기에있다? 덕분에 .

답변

5

나는 이것을 찾기 위해 24 시간을 일했고 많은 포럼을 검색했지만 아무도 성공에 대해 쓰지 않는다. 먼저 내가 모듈/mod_proxy_wstunnel.so 아파치 설정에서 활성화해야합니다 발견 : 여기

내가 마지막으로 한 일이며, 아파치 4.2.18

에 CentOS 6.7 릴리스 : 여기 내 서버 구성입니다 파일,하지만 내 아파치는 그 모듈을 가지고 있지 않았고 많은 검색 후에 나는 그 모듈이 아파치 2.4.5에서 사용 가능하다는 것을 발견했다.

https://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html

은 내가 https://archive.apache.org/dist/httpd/httpd-2.4.18.tar.gz 추출 아파치 - 2.4.18 \ 모듈 \ 프록시 \의 mod_proxy_wstunnel.c을 다운로드하고 이러한 commonds 다시 컴파일 할 수 다음 터미널에서 내 서버 루트 에 업로드 :

chmod 755 mod_proxy_wstunnel.C#set permission 
pxs -i -a -c mod_proxy_tunnel.C#compile module 

PXS 명령은 모듈을 컴파일했고, 그것을

,691를로드 아파치 설정 파일에 쓴 그 후
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so 

363,210 는 아파치 설정 파일의 끝이 라인을 추가 :

RewriteEngine on 
ProxyRequests Off 
ProxyPreserveHost on 
ProxyPass /myws ws://mysite.com:8091 
ProxyPassReverse /myws ws://mysite.com:8091 

과를 NOW : 작동!

var protocol = 'ws://'; 
if (window.location.protocol === 'https:') { 
      protocol = 'wss://'; 
    } 

var wsUri =protocol+ "mysite.com/myws"; 

var ws = new WebSocket(wsUri); 

그리고 WS에 요청을 전달합니다 : 당신이 WS를 설정할 수 있습니다 클라이언트 측 JS에서 은 다음과 같이 URL입니다 //mysite.com :, 모든 HTTPS 또는 http로드 페이지에 문제가 나던 8091 지시합니다 요청이/myws와 함께 ws : //mysite.com : 8091로 끝났습니다.

+0

wss 요청을 수신하고 리디렉션하도록 프록시를 구성하려고합니다.이 요청을 내 서버로 보내야합니다. 나는 당신이 한 일을 정말로 이해하지 못합니다. 이미 mod_proxy 및 mod_proxy_tunnel을 활성화했습니다 (apache2 2.4.10). 이제 아파치 설정을 바꾸어야한다. (나는 .htaccess로 시도했다.) 작동하지 않습니다. 500 개의 내부 서버 오류가 있습니다.ProxyPass/myws ws : //mysite.com : 8091 ProxyPassReverse/myws ws : //mysite.com : 8091 mysite.com은 무엇입니까? websocket serveur의 주소? – Sphinx117