如何拥有一个IP多台服务器

如何拥有一个IP多台服务器

我有一个网站,我们将其命名为 example.com。现在,我已经得到了网址http://www.example.com,其 DNS 地址为 10.0.1.1(:80),该地址在我的网络上端口转发到 192.168.0.14。

我也想有一个网站http://edu.example.com它将托管在我的另一台服务器上,但我只有一个路由器,因此只有一个 IP 地址。

我尝试在我的 apache 配置文件中使用 VirtualHost,但它无法指定另一台设备上的目录

答案1

您需要为 Apache 设置代理指令才能执行此操作。查看 Apache 上的 ProxyPass 指令模组代理页面了解具体信息。

答案2

我肯定会使用 Nginx 反向代理来做到这一点。

您可以将 nginx 与 apache 服务器放在同一台计算机上,并且可以将其配置为根据 url 将请求重定向到辅助服务器。

在此示例中,apache(之前)已配置为在端口 8080 上提供 example.com 服务,而 edu.example.com 在 xxx100:80 上提供服务

server { 
server_name example.com;

  # app1 reverse proxy follow
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_pass http://127.0.0.1:8080;

}

server { 
  server_name edu.example.com;

  # app2 reverse proxy settings follow
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Host $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_pass http://x.x.x.100:80;
}

您可能需要使用访问和错误日​​志的定义来扩展该示例。

此设置提供的另一个巨大优势是 SSL/TLS 卸载:您可以让 apache 后端提供纯 http 服务,让 nginx 提供启用 SSL/TLS 的 https 服务,这样您就可以在一台服务器中拥有您的证书,这使得您可以更轻松、更整洁地获取证书。维持。

相关内容