根目录下HTTPS上的代理Websocket-HAProxy

根目录下HTTPS上的代理Websocket-HAProxy,websocket,reverse-proxy,haproxy,Websocket,Reverse Proxy,Haproxy,我有一个awsELB,在ELB后面我有一个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

我有一个aws
ELB
,在ELB后面我有一个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://
,它应该代理到
demos.kaazing.com/echo
websocket

但是我得到了
403
错误

我做错什么了吗


这几乎肯定会导致错误的HTTP请求:

reqirep ^Host:\ .* Host:\ demos.kaazing.com/echo
Host
头只是主机头,而不是头和路径。错误消息应该是
400错误请求
,因为这会导致错误请求

尝试删除该行,然后添加以下内容:

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

请提及您的HAProxy版本(来自
HAProxy-v
)。另外,请从HAProxy日志中捕获匹配行。这是HA Proxy版本1.6.13-1ppa1~trusty 2017/06/19谢谢。