Apache虚拟主机:具有共享端口的两种配置:不起作用

时间:2019-07-07 11:49:07

标签: apache

我正在尝试建立一个系统,其中有2个虚拟主机文件,一个用于LAN,另一个用于WAN。 LAN站点必须是IP地址,WAN站点必须是dns名称(通过duckdns)。此外,LAN站点使用HTTP,而WAN站点使用HTTPS。他们需要共享端口。

LAN站点(192.168.1.183)需要侦听端口8888和30001-10,HTTP WAN站点(不是静态公共IP,具有通过duckdns的DDNS域)需要侦听端口8889和30001-10,HTTPS

我正在使用Apache 2.4.29,Ubuntu 18.04

我具有用于LAN的设置:

<VirtualHost 192.168.1.183:8888 192.168.1.183:30001 192.168.1.183:30002 192.168.1.183:30003 192.168.1.183:30004 192.168.1.183:30005 192.168.1.183:30006 192.168.1.183:30007 192.168.1.183:30008 192.168.1.183:30009 192.168.1.183:30010 >
    ServerAdmin webmaster@localhost
    ServerName 192.168.1.183
<etc>

我有用于WAN的此设置:

<VirtualHost myserver.duckdns.org:8889 myserver.duckdns.org:30001 myserver.duckdns.org:30002 myserver.duckdns.org:30003 myserver.duckdns.org:30004 myserver.duckdns.org:30005 myserver.duckdns.org:30006 myserver.duckdns.org:30007 myserver.duckdns.org:30008 myserver.duckdns.org:30009 myserver.duckdns.org:30010 >
    ServerAdmin webmaster@localhost

    ServerName myserver.duckdns.org
    SSLCertificateFile /etc/letsencrypt/live/myserver.duckdns.org/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/myserver.duckdns.org/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf

我在两个虚拟主机配置中都有特定的服务器名称的原因是,如果我同时启用了这两个端口,并且它们使用*(即使我对{{3}都使用不同的ServerName }帖子建议)

我面临的问题是我的LAN站点正常工作,但是我无法访问WAN站点(myserver.duckdns.org是有效的外部DNS名称,我已将该名称屏蔽了。)

这是我的ports.conf

Listen 80
Listen 192.168.1.183:8888

<IfModule ssl_module>
    Listen 443 https
    Listen 8889 https
    Listen 30001 https
    Listen 30002 https
    Listen 30003 https
    Listen 30004 https
    Listen 30005 https
    Listen 30006 https
    Listen 30007 https
    Listen 30008 https
    Listen 30009 https
    Listen 30010 https

</IfModule>

如果我将WAN更改为<VirtualHost *:8889 *:30001 ...>,可以访问它,但是在尝试访问myserver.duckdns.org:30001/somefoourl时遇到SSL握手错误,这意味着我的LAN配置文件与我的WAN配置文件混淆。

我知道this没有在虚拟主机中使用主机名,但是我无法找出需要在不是静态的WAN IP之间共享端口的任何其他方式(加上我的let加密证书用于DNS名称)和静态LAN IP。

谢谢

0 个答案:

没有答案