考虑以下情况:
Internet
||
||
.------''------.
| HTTPS (:443) |
'------..------'
||
.-----------------------'|
| \/
| 3rd party HAproxy service
| ||
| ||
optional .-----------''-----------.
route | PROXY Protocol (:5443) |
| '-----------..-----------'
| || ________
___________|_______________________||________________________________| SERVER |____
| | \/ |
| | local HAproxy |
| | || |
| | || |
| | .------''------. |
| | | HTTPS (:443) | |
| | '------..------' |
| | || |
| | || |
| | \/ |
| '---------------> local webserver |
|___________________________________________________________________________________|
后端服务器分别在端口 5443 和 443 上本地运行 HAproxy 和 Apache httpd。
我的本地网络服务器不支持 PROXY 协议。因此,我希望 HAproxy 从 3rd 方服务中捕获 PROXY 协议,并以 HTTPS 或简单的 TCP 直通方式将数据传递到本地网络服务器。
在 HTTPS 的情况下,我想它应该使用正确的 SSL 证书来操纵 HTTP 数据包,以在X-Forwarded-For
HTTP 标头中添加原始发件人 IP(应该由 PROXY 协议提供)。
但是,如果您是 HAproxy 的新手,那么HAproxy 的文档会很糟糕,而且我找不到解释如何执行此操作的示例。我知道它必须是可能的,因为 HAproxy 被列为“代理协议就绪软件”,但是如何?