如何重定向到其他服务器?(apache 和 nginx)

如何重定向到其他服务器?(apache 和 nginx)

我在端口 80 上为两个站点运行一个 Apache 服务器。假设域名为 ,example.com我还有另一个域名example2.com。当用户访问 时example.com,我希望它提供那些文件(因此是虚拟主机),但是当有人尝试访问该域名example2.com(位于同一 IP 地址上)时,我希望它重定向到端口 90 上的另一个 IP 地址,而访问者不知道他位于不同的端口上。

我怎样才能实现这个目标?

<VirtualHost example.com:80>   
 DocumentRoot {rootdir}  
 ServerName example.com  
 ServerAlias example.com 
</VirtualHost>   
<VirtualHost *:80>   
  NoProxy .example.com  
  ProxyPreserveHost On  
  ProxyRequests Off  
  ServerName *  
  ProxyPass / http://server2:90  
  ProxyPassReverse / http://server2:90  
</VirtualHost>  

这不起作用并且它example.com也会尝试使用代理,有人知道为什么吗?

答案1

您确定要重定向用户吗?据我了解,您希望服务器 example2.com 代理到其他地方。您可以使用以下方式将 Apache 设置为代理mod_proxy。您还可以为特定的 VirtualHost 定义此代理,请参阅 Apache 的VirtualHost 示例

例如这样的事情应该可以工作:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName example.com
<VirtualHost>
<VirtualHost *:80>
    ServerName example2.com
    ProxyPass / http://server2:90/
    ProxyPassReverse / http://server2:90/
    ProxyPreserveHost On  
    ProxyRequests Off
<VirtualHost>

还要确保 mod_proxy 已加载

LoadModule proxy_module modules/mod_proxy.so

相关内容