proxyproto — это легкая библиотека, которая помогает устаревшим программам работать с прокси-протоколом. Он поддерживает как IPv4, так и IPv6.
Работает на Linux и macOS
Существует множество устаревших программ, которые не поддерживают прокси-протокол (особенно программы с закрытым исходным кодом). Когда они работают за балансировщиком нагрузки или резервным прокси-сервером, трудно сохранить исходный IP-адрес.
proxyproto перехватывает процедуру accept()
, ожидает нового входящего соединения и прослушивает заголовок прокси-протокола от восходящего прокси (т. е. HAProxy, NGINX..)
После прочтения заголовка proxyproto заменяет исходный IP-адрес на IP-адрес, предоставленный вышестоящим прокси-сервером.
git clone --depth=1 https://github.com/ba0f3/proxyproto.nim.git proxyproto
cd proxyproto
nim c -d:release src/proxyproto
Используйте непосредственно внутри программы nim, которая принимает входящие соединения.
import proxyproto
Для существующих программ используйте LD_PRELOAD
$LD_PRELOAD =./src/libproxyproto.so nc -vkl -p 4444
[PROXY] initializing
[PROXY] hook accept OK
listening on [any] 4444 ...
Купи мне пива https://paypal.me/ba0f3