Rewrite
我需要使用多個 ssl 埠配置 haproxy
我有兩台伺服器,它們的 URL 相同,但埠號可能會改變。
我想將這兩個 URL 重定向到 HTTPS。
如果我輸入我的第一個 URL (
http://example.com
),那麼我希望它會重定向到https://example.com
.如果我輸入第二個 URL (
http://example.com:8080
),那麼我想將它重定向到https://example.com:8080
.查看我的配置:
frontend www-HTTP bind *:80 bind *:443 ssl crt /etc/apache2/ssl/apache.pem reqadd X-Forwarded-Proto:\ https default_backend tcp-backend mode tcp frontend TCP-HTTP bind *:8080 bind *:8443 ssl crt /etc/apache2/ssl/paritech.pem reqadd X-Forwarded-Proto:\ https default_backend www-backend mode tcp backend www-backend redirect scheme https if !{ ssl_fc } server dev.example.com 192.168.1.120:8080 check backend TCP-backend redirect scheme https if !{ ssl_fc } server qa.example.com 192.168.1.120:80 check
對於 HTTPS,如何通過 8443 重定向 8080 ..
的文件
redirect scheme
說使用“重定向方案”,“Location”標頭是通過與“://”連接建構的,然後是“Host”標頭的第一次出現,然後是 URI 路徑,包括查詢字元串…
有一個問題:它正在使用
Host
標題並且有你的8080
……這是一個可能的解決方案:
http-request replace-header Host ^(.*?)(:[0-9]+)?$ \1:8443 http-request redirect scheme https if !{ ssl_fc }
用正確的埠替換
Host
標題…