如何使用 Apache 根据 URL 重定向到不同的后端服务器?

如何使用 Apache 根据 URL 重定向到不同的后端服务器?

我是 Apache 的新手,如果这是某个地方有文档记录的解决方案,请见谅。我在网上搜索了很久,但似乎找不到这个答案...

我想根据进入运行 Apacheche 的 Debian Wheezy Web 服务器的 URL 将流量重定向到不同的后端服务器。例如,如果 URL 是http://abc.mydomain.com它将被传递到服务器 IP 192.168.0.100,但如果 URL 是http://def.mydomain.com它将被传递给服务器 IP 192.168.0.110。

在此先感谢您的帮助。

答案1

您可以将Apache前端服务器用作后端服务器的反向代理:mod_proxy

例如:

<VirtualHost *:80>
   ServerName abc.mydomain.com
   ProxyPass / http://192.168.0.100
   ProxyPassReverse / http://192.168.0.100
</VirtualHost>

<VirtualHost *:80>
   ServerName def.mydomain.com
   ProxyPass / http://192.168.0.110
   ProxyPassReverse / http://192.168.0.110
</VirtualHost>

您必须启用这些模块:

a2enmod proxy 
a2enmod proxy_http

的优点mod_proxy在于它对于最终用户是透明的:其浏览器地址栏中的 URL 将保持不变:它将保留,http://abc.mydomain.com但实际上他们是由 提供服务的http://192.168.0.100

答案2

您要做的就是反向代理。或者,您可以使用性能优于 Apache 的 Nginx 作为反向代理。

相关内容