0
我试图找出是否HTTPS在地址栏,因为我有HAPROXY之前SSL终止,但我希望HAPROXY做重定向,如果它是HTTP(有点奇怪的请求我知道)。检测HTTPS没有SSL终止
我试过: 重定向方案HTTPS如果{} ssl_fc
但它在一个永无止境的循环,因为它的数据包已经没有SSL结束了!有没有另一种方法来获取地址栏上的前缀?它也可以用于多个域,所以试图用通配符来做到这一点。
我试图找出是否HTTPS在地址栏,因为我有HAPROXY之前SSL终止,但我希望HAPROXY做重定向,如果它是HTTP(有点奇怪的请求我知道)。检测HTTPS没有SSL终止
我试过: 重定向方案HTTPS如果{} ssl_fc
但它在一个永无止境的循环,因为它的数据包已经没有SSL结束了!有没有另一种方法来获取地址栏上的前缀?它也可以用于多个域,所以试图用通配符来做到这一点。
我面前有HAProxy的
我假定你的意思SSL终止上ELB SSL终结?
如果是这样的:
redirect scheme https unless { hdr(x-forwarded-proto) -m str https }
ELB在HTTP模式下增加了X-Forwarded-Proto: https
对SSL连接。否则,该值设置为http
。生成一个重定向,除非头部值符合你的期望。
这正是我想要做的,并且你的修复工作完美,谢谢。我只是没有把那个包装更多的通用修复。 – AndrewL
不,就是这样。 'ssl_fc'(仅在** f ** ront-end ** c **连接上的SSL/TLS)只能提取HAProxy本身的前端套接字。这在浏览器直接连接到代理服务器时起作用,但它并不知道前面是否有设备正在终止SSL,因此标头提供了提示。 –