apache 动态二级域名(结合反向代理)

一、应用场景:

在同一个web容器中部署多个项目,如项目A、项目B等多个项目,没有使用动态二级域前,访问地址是:http://域名(或二级域名)/项目文件夹名名称(即A或B等)。现在需要使用apache进行转发,实现不同二级域名自动指向到不同的项目。如http://A.test.com自动访问A项目。

另外,个别二级域名不需要使用动态二级域名。

二、具体配置

(一)实现动态二级域名

1、准备本地测试域名

在C:\Winnt\System32\Drivers\Etc目录下找到hosts文件,增加A.test.com,B.test.com,other.test.com 3个测试域名。

2、启动mod_rewrite.so

打开conf/httpd.conf文件,开启mod_rewrite.so模块。

3、配置动态二级域名规则

打开conf/httpd.conf文件,增加以下代码

rewriteengine on

RewriteCond %{HTTP_HOST} ^[^.]+\.test\.com$

RewriteRule ^(.+) %{HTTP_HOST}$1 [C]

RewriteRule ^([^.]+)\.test\.com(.*) /$1$2

RewriteLog "logs/rewrite.log"

4、测试动态二级域名

浏览器输入A.test.com顺利访问A项目。配置成功

三、处理个人特殊二级域名

5、启动反向代理

(1)打开conf/httpd.conf文件,开启

mod_proxy.so

mod_proxy_ajp.so两个模块。

(2)conf/httpd.conf文件,增加以下代码

ProxyPreserveHost On

ProxyRequests off

6上述配置二级域名规则改成一下

rewriteengine on

RewriteCond %{HTTP_HOST} !^other\.test\.com$

RewriteCond %{HTTP_HOST} ^[^.]+\.test\.com$

RewriteRule ^(.+) %{HTTP_HOST}$1 [C]

RewriteRule ^([^.]+)\.test\.com(.*) /$1$2

RewriteCond %{HTTP_HOST} ^other\.test\.com$

RewriteRule ^/(.*) http://localhost:8080/$1 [P]

RewriteLog "logs/rewrite.log"

7、测试特殊二级域名

输入other.test.com,顺利代理到http://localhost:8080。

到此为止,配置成功

猜你喜欢

转载自mzllyl.iteye.com/blog/1874570