Apache+Tomcat实现动静分离
完成Tomcat集群搭建后,我们只需修改两、三处即可实现动静分离。
1.将原来httpd.conf中JkMount的路由规则都放入conf/extra/httpd-urimap.conf中:
/*=loadbalancer /jkstatus=jkstatus !/*.css=loadbalancer !/*.js=loadbalancer !/*.jpg=loadbalancer !/*.gif=loadbalancer !/*.png=loadbalancer !/*.html=loadbalancer !/*.htm=loadbalancer
其表达式的含义也很好理解,/jkstatus这个url指定了处理器jkstatus(集群状态监控器),而前面标有!的则是禁止使用loadbalancer处理,最后剩下的所有请求都交由loadbalancer处理就OK了。因此,实现动静分离的关键就在于Mount规则中将静态类文件都过滤掉。
2.修改httpd.conf,增加:
JkMountFile conf/extra/httpd-urimap.conf
3.最后一步,也是重要一步:
将tomcat中webapps/下的文件复制到apache的htdocs/,路径要保持一致,否则分离后会出现访问冲突。 webapps/下如果有多个项目可在httpd.conf中进行别名设置,具体参详:http://www.cnblogs.com/lzrabbit/archive/2013/03/05/2944804.html
多项目(同目录或者异目录)举例,在<IfModule alias_module></IfModule>中添加:
Alias / "${DocumentRoot}/Asite" <Directory "${DocumentRoot}/Asite"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> #<!-- # Alias /bsite "${DocumentRoot}/Bsite" # <Directory "${DocumentRoot}/Bsite"> # ... # </Directory> #-->
finally,启动apache和tomcat后,你就可以进行测试了。