Слушание на порте 80 в Ubuntu

У меня есть система 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. Хм.

0
задан 13 November 2015 в 13:07

2 ответа

Ничто не слушание на порте 80 больше. Это команда iptables просто вперед просит держать в строевой стойке 80 во внешней сети, чтобы держать в строевой стойке 3000 в местном масштабе.

, Но обслуживание все еще только слушает на порте 3000, и ничто иное (по-видимому), не слушает на порте 80, который является тем, о чем сообщает Ваша система.

Мое предположение - то, что Вы проверяете это в местном масштабе (т.е. с браузером на той же машине как обслуживание). Если это верно, и localhost:3000 достигает обслуживания, тогда правило iptables не достигается, потому что запрос не происходит во внешнюю сеть (или некоторый другой iptables связанная причина - я предполагаю здесь, что Ваши правила хорошие и работа, но Вы должны проверить это.)

Возможные решения:

  1. Гарантируют, что весь трафик проходит это правило iptables, или создайте несколько правил, таким образом, трафик из всех источников для порта 80 перенаправлен к 3 000.
  2. Изменение обслуживание, таким образом, это связывает, чтобы держать в строевой стойке 80 и удалить iptables, ускоряющий материал.
2
ответ дан 30 September 2019 в 05:08

Если Вы используете authbind для запуска котов тогда, нам не нужны iptables или любое программное обеспечение правил перенаправления, или апачи надеются, что эта ссылка будет полной справкой.

https://askubuntu.com/a/685306/377678

0
ответ дан 30 September 2019 в 05:08

Другие вопросы по тегам:

Похожие вопросы: