如何通过DNS重新路由端口?

如何通过DNS重新路由端口?,dns,ports,Dns,Ports,我拥有以下域: 一,。否定。零尚未拥有,等待公开发布;看 二,。qns.net 我正在运行2台apache2服务器,每台服务器都在不同的机器上。一个监听端口80,另一个监听端口9001。它们中的每一个都通过OpenWRT逆火进行端口转发。我希望能够通过URL访问运行在9001上的htp://negative.zero/ 另一个是通过URLhtp://qns.net 无需指定如下端口:htp://negative.zero:9001/ 我该怎么做?非常感谢您的帮助 *注意:我故意写了htp://因

我拥有以下域:

一,。否定。零尚未拥有,等待公开发布;看

二,。qns.net

我正在运行2台apache2服务器,每台服务器都在不同的机器上。一个监听端口80,另一个监听端口9001。它们中的每一个都通过OpenWRT逆火进行端口转发。我希望能够通过URL访问运行在9001上的htp://negative.zero/ 另一个是通过URLhtp://qns.net 无需指定如下端口:htp://negative.zero:9001/

我该怎么做?非常感谢您的帮助


*注意:我故意写了htp://因为如果你没有10个信誉,链接限制。

DNS本身不能强制客户端更改请求的端口号。因此,我只看到两种解决办法。您可以使用mod_proxy让服务器位于端口80上第一个服务器的后面,或者使用基于名称的虚拟主机,并去掉第二个服务器/端口

您有两种解决方案: *使用mod_代理 *使用基于名称的虚拟主机

备选案文1: 不幸的是,我没有使用mod_代理的经验。您可以在以下位置查阅文档:

备选案文2: 您可以使用基于名称的虚拟主机将两个请求都放在同一台服务器上

文件: 示例:

如果需要运行SSL,则需要有多个外部IP,因为整个HTTP/1.1请求都是加密的

通常,不可能在同一IP地址和端口上承载多个SSL虚拟主机。这是因为Apache需要知道主机名才能选择正确的证书来设置加密层。但是被请求主机的名称只包含在HTTP请求头中,HTTP请求头是加密内容的一部分。因此,只有在协商加密后才能使用。这意味着无法选择正确的证书,客户端将收到证书不匹配警告,并且容易受到中间人攻击。您可以在以下位置查看文档:

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>