У меня есть система Ubuntu 15.04 с веб-сервером Java, который прослушивает порт 3000. Iptables prerouting настроен следующим образом:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
Я также удалил пакеты apache2 из системы с помощью: [!d1 ]
apt-get remove apache2
Однако теперь я не получаю никакого процесса, прослушивающего порт 80 в системе:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 259/sshd
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 4841/java
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 455/master
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 256/systemd-resolve
Как следствие, страницы не доступны из браузера.
Спасибо!
UPDATE: На данный момент я закончил настройку Apache с модулями proxy и proxy_http, например:
[ f4]Что странно, так это то, что на аналогично сконфигурированной машине, работающей под управлением Ubuntu 14.04 под управлением Apache, чтобы не было прослушивание процесса на порту 80, не было необходимости. На этих машинах netstat также не будет показывать процессы, прослушивающие порт 80, но HTTP-запросы каким-то образом перенаправляются на сервер Java, прослушивающий порт 3000. Хммм.
Если вы используете authbind для запуска tomcats, нам не нужны iptables или какие-либо программы для перенаправления правил или apache, надеюсь, что эта ссылка будет полной.
https://askubuntu.com/a/685306/ 377678