Назад | Перейти на главную страницу

Apache не прослушивает все порты, настроенные для виртуального хоста и обратного прокси

У меня есть хост (Ubuntu 16.04) и виртуальная машина на нем. Я хочу использовать apache для пересылки разных портов на виртуальную машину с модулем обратного прокси. Проблема в том, что apache не прослушивает все настроенные порты.

У меня в /etc/apache2/sites-enabled/moni1.softxs.ch есть следующие настройки:

<VirtualHost *:80>
    ServerName          moni1.softxs.ch
    Redirect            301 / https://moni1.softxs.ch/
</VirtualHost>

<VirtualHost *:443>
    ServerName          moni1.softxs.ch
    ProxyPreserveHost   On
    ProxyRequests       Off
    ProxyPass           / http://172.16.3.101:80/ retry=0
    ProxyPassReverse    / http://172.16.3.101/
    SSLCertificateFile /etc/letsencrypt/live/moni1.softxs.ch/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/moni1.softxs.ch/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateChainFile /etc/letsencrypt/live/moni1.softxs.ch/chain.pem
</VirtualHost>

<VirtualHost *:3000>
    ServerName          moni1.softxs.ch
    ProxyPreserveHost   On
    ProxyRequests       Off
    ProxyPass           / http://172.16.3.101:3000/ retry=0
    ProxyPassReverse    / http://172.16.3.101/
</VirtualHost>

<VirtualHost *:3010>
    ServerName          moni1.softxs.ch
    ProxyPreserveHost   On
    ProxyRequests       Off
    ProxyPass           / http://172.16.3.101:3010/ retry=0
    ProxyPassReverse    / http://172.16.3.101/
</VirtualHost>

С помощью netstat я вижу, что apache не прослушивает порт 3010. Не знаю, почему.

$ netstat -nlptu | grep apache2
tcp6       0      0 :::80                   :::*                    LISTEN      32252/apache2   
tcp6       0      0 :::3000                 :::*                    LISTEN      32252/apache2   
tcp6       0      0 :::443                  :::*                    LISTEN      32252/apache2 

Порт бесплатный, могу слушать nc. Все остальные настройки обратного прокси работают должным образом.

Где-то в вашей конфигурации Apache у вас должны быть соответствующие Listen директивы для каждого порта, который вы хотите слушать:

 Listen 3000
 Listen 3010

Похоже, что один у вас уже есть, а другой нет.