我想在 haproxy 1.4 前面放置 stunnel 来处理 HTTPS 流量。我还需要 stunnel 添加X-Forwarded-For标头。这可以通过 haproxy 网站上的“stunnel-4.xx-xforwarded-for.diff”补丁来实现。
但是,描述中提到:
请注意,此补丁不适用于 keep-alive,...
我的问题是:这对我来说在实践中意味着什么?我不确定,
使用 HAProxy 1.6 和一个聪明的 hack,我现在有一个 HAProxy tcp 模式前端,它检测浏览器是否支持 SNI,并基于此,路由到一个强加密的 SSL 终止后端,或更弱的一个。这确保了 SSL 实验室的 A+ 等级,同时仍然允许除 IE6 之外的所有浏览器使用 SSL。
这是我的配置。它有一些模板变量应该是不言自明的,但不在与我的问题相关的领域:
frontend https_incoming
bind 0.0.0.0:443
mode tcp
option tcplog
tcp-request inspect-delay 5s
tcp-request content accept if { req.ssl_hello_type 1 }
use_backend https_strong if { req.ssl_sni -m end .transloadit.com }
default_backend https_weak
backend https_strong
mode tcp
option tcplog
server https_strong 127.0.0.1:1665
frontend https_strong
bind 127.0.0.1:1665 ssl crt ${DM_ROOT_DIR}/envs/ssl/haproxy-dh2048.pem no-sslv3 no-tls-tickets ciphers ${strongCiphers}
mode http
option httplog
option httpclose
option forwardfor if-none …Run Code Online (Sandbox Code Playgroud)