如何配置 apache2 子域路由到不同的服务器
How to configure apache2 subdomains to route to different servers
我是 运行 apache 2.4.7,目前我的所有流量都将转到同一 server/instance.
上 8080 上的后端服务器
我希望我的 www 流量转到新的 server/instance,我所有其他子域(应用程序、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
指令。
我是 运行 apache 2.4.7,目前我的所有流量都将转到同一 server/instance.
上 8080 上的后端服务器我希望我的 www 流量转到新的 server/instance,我所有其他子域(应用程序、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
指令。