LINUX.ORG.RU
ФорумAdmin

Прокси для не веб приложения.

 , , ,


0

1

Есть приложение которое гоняет байты до сервера и обратно. Можно ли с помощью apache и/или nginx пробрасвать это приложение наружу? Нужно это потому, что в некоторых случаях интернет доступен либо через прокси, либо доступен только 80 порт (иногда 443). Или же нужно делать в серверной части поддержку POST/GET?

Заранее спасибо.

★★★★★

Нжинском точно как-то можно, апачем фиг знает.
Но вообще поддержка POST на сервере это бывает полезно.
Но вообще для решения этой задачи должны быть инструменты гораздо проще чем вебсервер.

Goury ★★★★★
()
Ответ на: комментарий от Goury

Но вообще для решения этой задачи должны быть инструменты гораздо проще чем вебсервер.

Да оно понятно, просто IP один, 80 порт соответственно то же. А кроме этого приложения может потребоваться какой сайт или ещё что.

cyclon ★★★★★
() автор топика

TCP точно можно через haproxy

Балансировка TCP в nginx тоже есть, но появилась сравнительно недавно, в этом году

router ★★★★★
()
Ответ на: комментарий от cyclon

connect - это часть протокола http proxy ( например, squid ). Насколько я знаю, к nginx он не относится. nginx - reverse proxy

В любом случае, выставлить наружу http proxy - плохая идея. Радоваться будут только китайские хакиры ;)

router ★★★★★
()
Ответ на: комментарий от cyclon

Тогда можно настроить проброс с помощью iptables. Пишу на память, могут быть ошибки

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8443 -j DNAT --to-destination 1.2.3.4:5678
iptables -A FORWARDING -d 1.2.3.4 -p tcp -m tcp --dport 5678 -j ACCEPT # сюда можно ещё фильтр по source добавить
iptables -A FORWARDING -j REJECT # остальной forwarding траффик будем отбрасывать
echo 1 > /proc/sys/net/ipv4/ip_forward

При этом подключение к порту 8443 будет пробрасываться на 1.2.3.4 : tcp/5678

Если клиент в той же сети, что и 1.2.3.4 - тебе потребуется ещё и DNAT либо MASQUERADING

router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от router

Да это понятно (в смысле, я знаю, что так можно сделать), суть в том, что наружу, в чужой сети, может быть доступен, к примеру, только 80 порт.

cyclon ★★★★★
() автор топика
Ответ на: комментарий от cyclon

Подожди, так приложение внутри сети, ЕМУ ограничен доступ наружу, и ты хочешь получать соединения из интернета?

Не, девид блейн, уличная магия тебе не поможет :D Сквид и циску ты не обманешь.

Твой единственный вариант - туннелирование трафика и подконтрольный хост с белым внешним адресом ВНЕ защищённой сети

router ★★★★★
()
Ответ на: комментарий от cyclon

Чёт я не врубаюсь, ты хочешь на одном IP и порту одновременно поднять и какие-то сайты и произвольный tcp-сервер как виртуальный хост? Иначе зачем вообще nginx?

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Чёт я не врубаюсь, ты хочешь на одном IP и порту одновременно поднять и какие-то сайты и произвольный tcp-сервер как виртуальный хост?

yap

cyclon ★★★★★
() автор топика
Ответ на: комментарий от router

Подожди, так приложение внутри сети, ЕМУ ограничен доступ наружу, и ты хочешь получать соединения из интернета?

Клиентскому приложению, оно может только в 80 порт, соответственно серверная часть так же должна быть на 80.

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.