Haproxy将端口附加到后端请求中的“HTTP_HOST”标头

时间:2016-04-13 02:41:58

标签: http https url-rewriting haproxy

我在我的网络服务器前面使用 haproxy ssl 终止。

如果请求是 http s ,那么我在端口 81 上转发请求,如果请求正常则我 80 em> http -

backend b1_http
    mode http
    server bkend_server


backend b1_https
    mode http
    server bkend_server:81

问题是,当 haproxy 向后端发送请求时,它会将 HTTP_HOST 标头发送为request.domain.com:81

是否可以在 haproxy 中将 https 请求发送到特定端口的后端,而无需在 HTTP_HOST 请求标头中附加端口?

1 个答案:

答案 0 :(得分:1)

这里有两个问题。

首先,没有HTTP_HOST标头。标头为Host:。听起来HTTP_HOST是由您的Web服务器或框架在内部生成的。

其次,HAProxy不会修改Host:标题只是因为你的后端正在监听80以外的端口。它实际上并没有修改Host:标题。 all,除非明确配置为,使用reqirep ^Host: ...http-request set-header host ...等机制。

您可以通过数据包捕获进行确认。您应该发现无论HTTP_HOST是什么,该值必然是在后端系统本身内部生成的,因为它不是来自HAProxy。