通过路由器后面的同一台机器访问 2 个站点

通过路由器后面的同一台机器访问 2 个站点

我的局域网上有几台机器。其中一台运行着两个网站,first_web_site 和 second_web_site(每个网站都在一个专用的 NameVirtualHost 中)。另一台机器运行着另一个网站 third_web_site。我希望能够通过以下网址在互联网上访问每台机器:

  • 第一个网站.域名.tld
  • 第二个网站.域名.tld
  • 第三网站.域名.tld

知道两个站点位于同一台机器上。Apache 能帮我做到这一点吗?

我有一台机器,上面有一台 Apache 服务器,用于代理目的。我曾想在这台机器上设置虚拟主机并使用代理服务器,但我不知道该怎么做。

你能给我一些提示吗?非常感谢,Luc

答案1

在您的 apache conf.d 中创建或编辑 vhosts.conf(或根据操作系统的等效文件)。

使用 NameVirtualHost 指令来处理 DNS 名称。

NameVirtualHost *:80

然后定义每个虚拟主机。类似以下内容:

<VirtualHost *:80>
    ServerName sub1.domain.com
    ProxyRequests Off
    ProxyPreserveHost On

    # use the IP address or DNS or the server to forward to
    # can include the port as well if necessary
    ProxyPass / http://x.x.x.1/
    ProxyPassReverse / http://x.x.x.1/
</VirtualHost>

<VirtualHost *:80>
    ServerName sub2.domain.com
    ProxyRequests Off
    ProxyPreserveHost On

    ProxyPass / http://x.x.x.2/
    ProxyPassReverse / http://x.x.x.2/
</VirtualHost>

对于同一台机器上的两个站点,这取决于它们的设置方式。如果它们位于不同的端口,请定义端口;如果它们是路径,则需要在 ProxyPass 和 ProxyPassReverse 条目的末尾添加路径:

http://x.x.x.1/app1

答案2

您可以在第一个盒子上设置代理,以连接并隧道传输到第二个盒子。这样第二个盒子就可以完成所有繁重的工作,而第一个盒子只需要资源来显示页面。

相关内容