Рассмотрим следующую ситуацию:
Internet
||
||
.------''------.
| HTTPS (:443) |
'------..------'
||
.-----------------------'|
| \/
| 3rd party HAproxy service
| ||
| ||
optional .-----------''-----------.
route | PROXY Protocol (:5443) |
| '-----------..-----------'
| || ________
___________|_______________________||________________________________| SERVER |____
| | \/ |
| | local HAproxy |
| | || |
| | || |
| | .------''------. |
| | | HTTPS (:443) | |
| | '------..------' |
| | || |
| | || |
| | \/ |
| '---------------> local webserver |
|___________________________________________________________________________________|
На внутреннем сервере есть HAproxy и Apache httpd, локально работающие на портах 5443 и 443 соответственно.
Мой локальный веб-сервер не поддерживает протокол PROXY. Поэтому я хочу, чтобы HAproxy перехватил протокол PROXY от сторонней службы и передавал данные на локальный веб-сервер либо по протоколу HTTPS, либо просто по протоколу TCP.
В случае HTTPS я полагаю, что он должен манипулировать HTTP-пакетами, используя правильный SSL-сертификат, чтобы добавить исходный IP-адрес отправителя в X-Forwarded-For
заголовки HTTP (которые должны предоставляться протоколом PROXY).
Однако документация по HAproxy ужасна, если вы новичок в HAproxy. , и я не смог найти примеров, объясняющих, как это сделать. Я знаю, что это должно быть возможно, поскольку HAproxy указан как «Программное обеспечение, поддерживающее протокол прокси», но как?