【问题标题】:how to Redirect two URL's on same port to two diff IP's internally如何将同一端口上的两个 URL 重定向到内部的两个不同 IP
【发布时间】:2011-11-29 23:00:24
【问题描述】:

这两台机器 A 和 B 是 1 个 IP 地址后面的 NAT。

Url.xyz.com 转到由 apache 2.2 服务的端口 80 上的机器 A 并且 url2.xyz.com 应该转到该机器上的 apache 2.2 服务的端口 80 上的机器 B

我有机器 A 从我的网关获取所有入站端口 80 数据包...仅供参考

在某一时刻,我在机器 A 上安装了 apache 来执行此操作,但现在我正在苦苦挣扎 恢复良好的配置。我在差异机器 B 上使用差异操作系统是有充分理由的....

我记得在机器 A 上使用 apache 2.2 设置虚拟服务器 url2.xyz.com 端口 80,然后将机器 A 和 B 上的主机文件设置为标题为:

192.168.0.x url2.xyz.com url2

并在机器 A 上的 apache 中设置 url2.xyz.com 的文档根目录等于机器 B 上的文档根目录。(它不会占用空白字段......)

我要么在做梦,要么错过了一个轻微的设置步骤。任何帮助表示赞赏。我记得,从大约六个月前开始,机器 A 上的 apache 似乎读取了主机文件并且做得对..

最终的好结果是(希望)机器 A 上的虚拟服务器从机器 B(或 C、或 D 等)获取内容

或者,我会尝试从我的提供商那里获取另一个 IP 地址。

【问题讨论】:

    标签: apache nat


    【解决方案1】:

    一种可能性是让机器 A 充当机器 B 的代理。这意味着对两个域的所有请求都通过端口 80 发送到机器 A,但随后您在 apache 中设置了基于名称的虚拟主机。 url2.xyz.com 的虚拟主机然后将请求转发到机器 B。

    类似这样的:

    机器 A 上的虚拟主机:

    <VirtualHost *:80>
    ServerName url1.xyz.com
    DocumentRoot /var/www/url1
    </VirtualHost>
    
    <VirtualHost *:80>
    ServerName url2.xyz.com
    ProxyPass / http://url2.machineB/
    ProxyPassReverse / http://url2.machineB/
    </VirtualHost>
    

    然后在机器 A 上定义 url2.machineB 以指向机器 B 的 IP 地址。您可以通过在文件 /etc/hosts 中添加一行来做到这一点。然后在机器 B 上创建一个 apache 虚拟主机来监听该域,如下所示:

    <ViirtualHost *:80>
    ServerName url2.machineB
    DocumentRoot /var/www/url2
    </VirtualHost>
    

    这可能不是完全的解决方案,但应该为您提供一种选择。有关代理的更多信息,请参阅http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

    【讨论】:

      猜你喜欢
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 2018-03-20
      • 2018-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多