Apache-2.4
Apache 不會監聽所有配置有虛擬主機和反向代理的埠
我有一個主機(Ubuntu 16.04)和一個虛擬機。我想使用 apache 將不同的埠轉發到帶有反向代理模組的 VM。問題是,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
看來您已經有了一個,但沒有另一個。