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

Chr*_*aan 1 apache-http-server redirection nginx

我有一个 Apache 服务器在端口 80 上为两个站点运行。假设域是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>  
Run Code Online (Sandbox Code Playgroud)

这不起作用,它也试图example.com与代理取得联系,有人知道为什么吗?

Cal*_*imo 5

您确定要重定向用户吗?据我了解,您希望服务器 example2.com 代理到其他地方。您可以使用mod_proxy 将Apache 设置为代理。您还可以为特定的 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>
Run Code Online (Sandbox Code Playgroud)

还要确保 mod_proxy 已加载

LoadModule proxy_module modules/mod_proxy.so
Run Code Online (Sandbox Code Playgroud)