暴露未在端口80上侦听的Web服务器

暴露未在端口80上侦听的Web服务器,web,port,server,Web,Port,Server,我的问题可能是琐碎和重复的,但要么我无法表述,要么还没有得到回答 我有两个网络服务器在一个数字海洋水滴。一个在端口80上侦听,可以通过example.com访问。DNS位于路由53上,另一个在端口8080上:如何使其可以从example-2.com访问 我想我正在寻找的软件将拦截HTTP请求,检查引用,并将来自example.com的请求路由到端口80,将来自example-2.com的请求路由到端口8080。这是什么?这不能仅使用DNS来完成。默认情况下,当url以http开头时,web浏览器

我的问题可能是琐碎和重复的,但要么我无法表述,要么还没有得到回答

我有两个网络服务器在一个数字海洋水滴。一个在端口80上侦听,可以通过example.com访问。DNS位于路由53上,另一个在端口8080上:如何使其可以从example-2.com访问


我想我正在寻找的软件将拦截HTTP请求,检查引用,并将来自example.com的请求路由到端口80,将来自example-2.com的请求路由到端口8080。这是什么?

这不能仅使用DNS来完成。默认情况下,当url以http开头时,web浏览器尝试连接到端口80,而不指定端口。用户必须知道如何连接到端口8080,并根据需要显式访问URL

http://example-2.com:8080
我假设您在同一OS环境/IP地址上运行两个web服务器实例,尽管这也适用于不同的托管环境。您可能需要的是一个反向web代理,它可以检查请求的域名并路由到适当的服务器实例。您可以在端口80上运行反向web代理,并可能将当前在端口80上运行的服务器移动到另一个端口,例如8081

带有mod_代理和虚拟主机设置的Apache是一个可能的解决方案。假设example.com和example-2.com指向Apache实例,将其配置如下:

<VirtualHost *:80>
 ServerName example.com
     ServerAdmin webmaster@example.com

     ProxyRequests off
     ProxyPreserveHost on
     ProxyPass / http://localhost:8081/
     ProxyPassReverse / http://localhost:8081/
     <Proxy *>
          Order allow,deny
          Allow from all
     </Proxy>
</VirtualHost>

<VirtualHost *:80>
     ServerName example-2.com
     ServerAdmin webmaster@example-2.com

     ProxyRequests off
     ProxyPreserveHost on
     ProxyPass / http://localhost:8080/
     ProxyPassReverse / http://localhost:8080/
     <Proxy *>
          Order allow,deny
          Allow from all
     </Proxy>
</VirtualHost>

您可能可以使用反向代理来执行此操作,但通常不能让两个不同的进程侦听同一TCP/IP端口。好的,反向代理将侦听端口80上的所有内容,并重定向到其余服务?这很有效;小心,8080之后的第二个虚拟主机缺少一个/抱歉。此外,您可能需要考虑防火墙配置或您的Web服务器配置为从哪个主机进行连接。用户不需要使用此配置直接访问:8080和:8081。代理会代表用户进行访问,因此我建议将这些端口锁定到代理服务器上,在这种情况下,可能是本地主机。