Я использую nginx в качестве почтового прокси-сервера, для аутентификации и некоторых других дополнений. Но мне нужно использовать другой прокси перед nginx (например, haproxy). Все в порядке, все работает. Но nginx не может получить реальный IP-адрес клиента.
В модуле http я могу переслать его с заголовком x-forwarded-for и nginx proxy_protocol. Но в почтовом модуле я не могу этого сделать. Почтовый модуль не поддерживает proxy_protocol.
Есть ли способ, как я могу передать реальный IP-адрес клиента на nginx?
Мой haproxy и nginx config like;
haproxy.cfg:
frontend IMAP
bind 0.0.0.0:143 name IMAP tcp-ut 30s
default_backend IMAP
backend IMAP
option tcp-check
tcp-check connect port 11143
tcp-check expect string * OK
server localhost 127.0.0.1:11143 send-proxy check
nginx .conf
mail {
auth_http 127.0.0.1:333/auth;
proxy on;
imap_auth plain;
server {
listen 11143;
protocol imap;
auth_http_header proxyprotocol imap;
}
}