2017-11-25 30 views
0

私はaws ELB、ELBの後ろに私はHAProxyを持っています。HTTPS上のプロキシWebSocket - HAProxy

ここにプロキシ設定ファイルがあります。

cat /etc/haproxy/haproxy.cfg

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 

私は何をしようとしていることは、wss://<ELB_A_RECORD>あり、それはdemos.kaazing.com/echoのWebSocketにプロキシする必要があります。

しかし、私は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

ありがとうございます。その働き –

関連する問題