根目录下HTTPS上的代理Websocket-HAProxy
我有一个aws根目录下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
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谢谢。