如何配置apache2子域以路由到不同的服务器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何配置apache2子域以路由到不同的服务器相关的知识,希望对你有一定的参考价值。
我正在运行apache 2.4.7,目前我的所有流量都是在8080上的同一服务器/实例上的后端服务器上。
我希望我的www流量转到新的服务器/实例和所有其他子域(app,api等)转到现有的8080。
有人可以提供一些方向吗?
帮助赞赏。
<VirtualHost *:80>
ProxyPreserveHost On
ServerAdmin webmaster@example.com
ServerName example.com
Redirect "/" "https://www.example.com/"
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html/
Redirect "/ft/" "/"
ErrorLog /var/www/example.com/logs/error.log
CustomLog /var/www/example.com/logs/access.log combined
ProxyPass / http://0.0.0.0:8080/
ProxyPassReverse / http://0.0.0.0:8080/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
答案
如果要对www
子域的新服务器进行外部重定向,则需要在其他重写规则下将以下内容添加到配置中:
RewriteCond ${HTTP_HOST} ^www. [NC]
RewriteRule ^ https://www.example.com/${REQUEST_URI} [L,R=301]
你需要删除ServerAlias
指令。这也假设您已经将DNS指向新主机。
如果为www
内容提供服务的新框是另一个支持的服务器,则需要另一个虚拟主机。在顶部添加以下内容:
<VirtualHost *:80>
ServerName www.example.com
ProxyPass / http://other-box/
ProxyPassReverse / http://other-box/
</VirtualHost>
你仍然需要删除ServerAlias
指令。
以上是关于如何配置apache2子域以路由到不同的服务器的主要内容,如果未能解决你的问题,请参考以下文章
在 aws 负载均衡器中 sshing 并将其配置为子域路由?