我有以下域名:
1。)Negative.Zero(尚未拥有,等待公开发布;请参阅here)
2。)qns.net
我正在运行(2)apache2服务器,每台都在不同的机器上。一个侦听端口80,另一个侦听9001.每个端口都通过OpenWRT Backfire进行端口转发。我希望能够通过URL htp://negative.zero/访问运行在9001上的那个,而通过URL htp://qns.net访问另一个,而不必指定这样的端口:htp:// negative .zero:9001 /
我该怎么做?非常感谢任何帮助。
*注意:如果您没有10个声誉,我有意写了htp://因为链接限制。
答案 0 :(得分:0)
DNS本身无法强制客户端更改请求的端口号。因此,我只看到两个解决方案。您可以使用mod_proxy让服务器位于端口80上的第一个服务器后面,或者使用基于名称的虚拟主机,并删除第二个服务器/端口。
您有两种解决方案: *使用mod_proxy *使用基于名称的虚拟主机
选项1: 不幸的是我没有使用mod_proxy的经验。您可以参考http://httpd.apache.org/docs/current/mod/mod_proxy.html
上的文档选项2: 您可以使用基于名称的虚拟主机在同一服务器上同时拥有这两个请求。
文档:http://httpd.apache.org/docs/current/vhosts/name-based.html 示例:https://wiki.apache.org/httpd/ExampleVhosts
NameVirtualHost *:80
<!-- qns.net *.qns.net www.qns.net -->
<VirtualHost *:80>
ServerName www.qns.net
ServerAlias qns.net *.qns.net
DocumentRoot /www/qns.net
</VirtualHost>
<!-- negative.zero www.negative.zero *.negative.zero -->
<VirtualHost *:80>
ServerName www.negative.zero
ServerAlias negative.zero *.negative.zero
DocumentRoot /www/negative.zero
</VirtualHost>
如果您需要运行SSL,则需要有多个外部IP,因为整个HTTP / 1.1请求都已加密。
通常,在同一IP地址和端口上托管多个SSL虚拟主机是不可能的。这是因为Apache需要知道主机的名称才能选择正确的证书来设置加密层。但是,所请求主机的名称仅包含在HTTP请求标头中,该标头是加密内容的一部分。因此,在加密已经协商之后才可用。这意味着无法选择正确的证书,客户端将收到证书不匹配警告,并且容易受到中间人攻击。您可以在以下网址查看文档:{{3}}