Как обработать каждый TCP-пакет в nginx?

Протокол не HTTP.
Нужен немного доработанный port forwarding.

Необходимо научиться перенаправлять входящий TCP-трафик на динамически меняемый сервер:порт. При этом нужно, чтобы при каждом приходе TCP-пакета (от обоих сторон) вызывался callback, где можно было бы читать и менять содержимое поля data.

Собственно вопросы:
- каким способом можно tcp-трафик перенаправить его на произвольный, не разрывая входящий сокет?
- какой модуль или функции nginx отвечает за обработку каждого пакета, и можно ли навесить описываемый callback.
  • Вопрос задан
  • 3003 просмотра
Пригласить эксперта
Ответы на вопрос 3
donnerjack13589
@donnerjack13589
io.js core developer
Может быть имеет смысл использовать HAProxy вместо nginx? Насколько я понимаю, он больше подходит для этих целей.
Ответ написан
Комментировать
@bondbig
nginx не сможет работать с не HTTP-протоколом. Нужно использовать либо средства межсетевого экрана (iptables/netfilter в linux), либо, если нужна балансировка, то другие решения, типа IPVS или HA-proxy.
Ответ написан
Комментировать
risik
@risik
Программист
Есть такой модуль: https://github.com/yaoweibin/nginx_tcp_proxy_module
Сам не пробовал, за качество не отвечу. Равно как и за возможности - решает ли он Вашу задачу. Возможно, что в этих исходниках Вы найдете ответ на свои вопросы.
Но на самом деле, Вам или HAProxy (если для балансировки) или делать свой. Так как задача какая-то не совсем стандартная.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы