【发布时间】:2018-10-29 07:12:11
【问题描述】:
考虑以下情况:
Internet
||
||
.------''------.
| HTTPS (:443) |
'------..------'
||
.-----------------------'|
| \/
| 3rd party HAproxy service
| ||
| ||
optional .-----------''-----------.
route | PROXY Protocol (:5443) |
| '-----------..-----------'
| || ________
___________|_______________________||________________________________| SERVER |____
| | \/ |
| | local HAproxy |
| | || |
| | || |
| | .------''------. |
| | | HTTPS (:443) | |
| | '------..------' |
| | || |
| | || |
| | \/ |
| '---------------> local webserver |
|___________________________________________________________________________________|
后端服务器分别在端口 5443 和 443 上本地运行 HAproxy 和 Apache httpd。
我的本地网络服务器不支持代理协议。因此,我希望 HAproxy 从 3rd 方服务中捕获 PROXY 协议,并通过 HTTPS 或简单的 TCP 传递将数据传递到本地网络服务器。
在 HTTPS 的情况下,我想它应该使用正确的 SSL 证书来操作 HTTP 数据包,以在 X-Forwarded-For HTTP 标头中添加原始发件人 IP(应该由 PROXY 协议提供)。
但是,如果您是 HAproxy 的新手,documentation of HAproxy 会很糟糕,而且我找不到解释如何执行此操作的示例。我知道这是可能的,因为 HAproxy 被列为"Proxy-protocol ready software",但是如何?
【问题讨论】: