我们试图让 HAProxy 侦听来自端口 443(HTTPS 和 WSS)的所有传入流量
下面是我们的 HAProxy 配置:
frontend wwws
bind 0.0.0.0:443 ssl crt /etc/haproxy/server.pem
timeout client 1h
default_backend www_backend
backend www_backend
mode http
stats enable
stats uri /haproxy
option forwardfor
reqadd x-forwarded-proto:\ https
server server1 backend:3000 weight 1 maxconn 8192 check
Run Code Online (Sandbox Code Playgroud)
0.0.0.0:443(例如https://example.com)是我们的 HA 代理服务器,它监听所有传入的 443 流量后端:3000 是我们的 nginx 服务器,它被设置为监听 SSL 连接
我们现在面临的当前问题是,当我们输入https://example.com 时,浏览器显示以下错误:
400 Bad Request
The plain HTTP request was sent to HTTPS port
nginx/1.7.5
Run Code Online (Sandbox Code Playgroud)
当 haproxy 将流量转发到 nginx(后端:3000)时,它似乎确实会转换为 http。
我认为“reqadd x-forwarded-proto:\ https”应该确保它是https。
不确定我们的 haproxy 配置有什么问题。
将后端服务器规范更改为:
server server1 backend:3000 weight 1 maxconn 8192 check ssl verify none
Run Code Online (Sandbox Code Playgroud)
“ssl”部分定义后端使用 SSL,如果不存在,haproxy 将默认为普通 HTTP。“verify none”禁用证书检查,无论如何您可能不想对您的内部服务器执行此操作。
| 归档时间: |
|
| 查看次数: |
9313 次 |
| 最近记录: |