2017-11-25 39 views
0

나는 awb ELB을 가지고 있는데, ELB 뒤에 나는 HAProxy가있다.루트에서 HTTPS의 프록시 Websocket - HAProxy

다음은 프록시 구성 파일입니다. 내가 뭘하려고 오전

frontend http-traffic 
     bind *:80 
    acl is_websocket hdr(Upgrade) -i WebSocket 
     redirect scheme https if is_websocket 
     use_backend websocket if is_websocket 
     default_backend tomcat 

frontend https-traffic 
     bind *:443 ssl crt /etc/ssl/private/gayan.pem 
     reqadd X-Forwarded-Proto:\ https 
    acl is_websocket hdr(Upgrade) -i WebSocket 
     use_backend websocket if is_websocket 
     default_backend tomcat 

backend tomcat 
     reqirep ^([^\ :]*)\ /(.*)  \1\ /ImageServlet\2 
     server tc 172.20.135.97:8080 

backend websocket 
    reqirep ^Host:\ .* Host:\ demos.kaazing.com/echo 
    server ws demos.kaazing.com:443/echo ssl verify none 

cat /etc/haproxy/haproxy.cfg

wss://<ELB_A_RECORD>이며 demos.kaazing.com/echo 웹 소켓에 프록시해야합니다.

그러나 나는 403 오류가 발생합니다.

뭐가 잘못 되었나요?

enter image description here

+0

(haproxy -v''에서) 당신의 HAProxy 버전을 언급하십시오. 또한 HAProxy 로그에서 일치하는 줄을 캡처하십시오. –

+0

'HA-Proxy 버전 1.6.13-1ppa1 ~ trusty 2017/06/19' 님, 감사합니다. –

답변

1

이 거의 확실하게 잘못된 HTTP 요청 결과 :

reqirep ^Host:\ .* Host:\ demos.kaazing.com/echo 

Host 헤더는 헤더와 경로가 아닌, 오직 호스트 헤더입니다. 오류 메시지는 400 Bad Request이어야합니다. 이로 인해 형식이 잘못된 요청이 발생했을 수 있습니다.

시도 그 라인을 제거하고, 다음을 추가 :

http-request set-header Host demos.kaazing.com 
http-request set-path /echo 
+0

고맙습니다. 그 일 –