Nginx
HAProxy 將流量重定向到 NGINX,出現錯誤“普通 HTTP 請求已發送到 HTTPS 埠”
我們試圖讓 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
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
似乎當 haproxy 將流量轉發到 nginx(後端:3000)時,它會轉換為 http。
我認為“reqadd x-forwarded-proto:\ https”是為了確保它是 https。
不確定我們的 haproxy 配置有什麼問題。
將後端伺服器規範更改為:
server server1 backend:3000 weight 1 maxconn 8192 check ssl verify none
“ssl”部分定義後端使用 SSL,如果不存在,haproxy 將預設使用純 HTTP。“驗證無”禁用證書檢查,無論如何您可能都不想對內部伺服器執行此操作。