Я перемещаю все, что использует порт 80 на порт 9000 на моем сервере, поэтому я настроил свой apache + его виртуальные хосты для прослушивания 9000, используя ip xx.xx.xx.106, и я настроил свои iptables на предварительную маршрутизацию, и они работают хорошо.
Проблема в том, что у меня есть приложение nodejs, работающее на xx.xx.xx.108: 9000, которое не перенаправляется, когда я набираю адрес в моем браузере без номера порта. Вместо этого он переходит в каталог по умолчанию на моем сервере через порт 80 (отлично работает, когда я перехожу прямо к адресу: порт)
Вот мой маршрут
➜ public_html iptables -t nat -L -v -n --line-numbers
Chain PREROUTING (policy ACCEPT 639 packets, 80831 bytes)
num pkts bytes target prot opt in out source destination
1 285 16568 REDIRECT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 9000
Chain POSTROUTING (policy ACCEPT 48 packets, 3125 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 45 packets, 2981 bytes)
num pkts bytes target prot opt in out source destination
1 3 144 REDIRECT tcp -- * * 0.0.0.0/0 127.0.0.1 tcp dpt:80 redir ports 9000
2 0 0 REDIRECT tcp -- * * 0.0.0.0/0 173.234.60.106 tcp dpt:80 redir ports 9000
3 0 0 REDIRECT tcp -- * * 0.0.0.0/0 173.234.60.108 tcp dpt:80 redir ports 9000
Странно то, что порт 80 ничего не слушает, а файл index.php в каталоге по умолчанию правильно компилирует PHP. Это заставляет меня задуматься, есть ли служба по умолчанию, которая слушает порт 80.