在同一 IP 上托管两个独立的 Web 服务器

在同一 IP 上托管两个独立的 Web 服务器

我目前有一个安装了 Apache 并且运行良好的 Ubuntu 网络服务器,我想做两件事,我想设置另外两个盒子,它们位于同一个 WAN 地址上,但当然有单独的本地地址。

假设我有 www.example.com 作为主服务器,我还希望在不同的机器上安装 test.example.com,在第三个机器上安装 fun.example.com。

我该如何实现这个目标?

答案1

来自 George Kourouleas 提供的链接

Apache 反向代理

是我所寻找的

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName foo.com

  DocumentRoot /srv/www/default

  <Location "/">
    Order Deny, Allow
    Deny from all
    Allow from all
  </Location>
</VirtualHost>

<VirtualHost *:80>
  ServerName fooa.com

  ProxyPreserveHost on
  ProxyPass / http://server2/
  ProxyPassReverse / http://server2/
</VirtualHost>

<VirtualHost *:80>
  ServerName foob.com
  ServerAlias fooc.com

  ProxyPreserveHost on
  ProxyPass / http://server3/
  ProxyPassReverse / http://server3/
</VirtualHost>

完全符合我的要求以及 mod_proxy

答案2

笔记

在 Apache 服务器上创建虚拟主机配置不会奇迹般地导致为这些主机名创建 DNS 条目。您必须在 DNS 中拥有这些名称,解析为您的 IP 地址,否则其他人将无法看到您的网站。您可以将条目放入主机文件中进行本地测试,但这仅适用于具有这些主机条目的机器。

# Ensure that Apache listens on port 80
Listen 80
<VirtualHost *:80>
    DocumentRoot /www/example1
    ServerName www.example.com

    # Other directives here
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /www/example2
    ServerName www.example.org

    # Other directives here
</VirtualHost>

星号匹配所有地址,因此主服务器不处理任何请求。由于 ServerName 为 www.example.com 的虚拟主机在配置文件中位于首位,因此它具有最高优先级,可视为默认或主服务器。这意味着,如果收到的请求与指定的 ServerName 指令之一不匹配,则将由第一个 VirtualHost 处理。

来自的回答http://httpd.apache.org

亲切的问候。

相关内容