У меня есть система Ubuntu 15.04 с веб-сервером Java, слушающим на порте 3000. Предварительная маршрутизация Iptables является установкой как это:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
Я также удалил apache2 пакеты из системы с:
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
Как следствие страницы не доступны от браузера. Кто-то может помочь?
Спасибо!
ОБНОВЛЕНИЕ: На данный момент я закончил тем, что настроил Apache с proxy
и proxy_http
модули, как так:
<VirtualHost *:80>
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:3000/
</VirtualHost>
То, что является странным, - то, что на столь же настроенной машине под управлением Ubuntu 14.04 рабочий Apache, чтобы иметь некоторый процесс, слушающий на порте 80, не был необходим. На этих машинах, netstat
также не показал бы процессов, слушающих на порте 80, все же Запросы HTTP были так или иначе переданы серверу Java, слушающему на порте 3000. Хм.
Ничто не слушание на порте 80 больше. Это команда iptables просто вперед просит держать в строевой стойке 80 во внешней сети, чтобы держать в строевой стойке 3000 в местном масштабе.
, Но обслуживание все еще только слушает на порте 3000, и ничто иное (по-видимому), не слушает на порте 80, который является тем, о чем сообщает Ваша система.
Мое предположение - то, что Вы проверяете это в местном масштабе (т.е. с браузером на той же машине как обслуживание). Если это верно, и localhost:3000 достигает обслуживания, тогда правило iptables не достигается, потому что запрос не происходит во внешнюю сеть (или некоторый другой iptables связанная причина - я предполагаю здесь, что Ваши правила хорошие и работа, но Вы должны проверить это.)
Возможные решения:
Если Вы используете authbind для запуска котов тогда, нам не нужны iptables или любое программное обеспечение правил перенаправления, или апачи надеются, что эта ссылка будет полной справкой.