由于目前项目并发量大,需优化服务器性能,本文使用Apache的负载均衡做配置,使静态文件由Apache处理,动态页面由Tomcat处理。本文中以xx.demo.com域名为案例。
准备前:
一、./etc/httpd/httpd.conf中先开启访问日志,便于监控,可以在全局配置里打开,也可单独配置单个项目/etc/httpd/extra/httpd-vhosts.conf
单个项目配置:
#xx.demo.com
<VirtualHost *:80>
ServerAdmin service@demo.com
DocumentRoot "/web/app/demo"
ServerName xx.demo.net
ErrorLog logs/xx.demo.com-error_log
TransferLog logs/xx.demo.com-access_log
ErrorDocument 404 404.html
<Directory "/web/app/demo/">
Options FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Allow from all
</Directory>
JkMount / tomcat1
JkMount /* tomcat1
</VirtualHost>
主要配置:TransferLog logs/xx.demo.com-access_log
二、开启Tomcat访问日志
配置:tomcat/conf/server.xml
<Host name="xx.demo.com" appBase="/web/app/demo" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
</Host>
开启后,访问项目,查看日志会发现apache的/logs/xx.demo.com-acess_log与tomcat的logs/localhost_access_log.2016-09-05.txt中有所有请求的地址
开始配置:
三、在apache目录/apach_2_2_9/conf下创建tomcat1_uriworkermap.properties文件,配置如下:
/*=tomcat1
!/*.jpg=tomcat1
!/*.gif=tomcat1
!/*.png=tomcat1
!/*.bmp=tomcat1
!/*.html=tomcat1
!/*.htm=tomcat1
!/*.swf=tomcat1
!/*.css=tomcat1
!/*.js=tomcat1
四、配置项目/etc/httpd/extra/httpd-vhosts.conf,修改为
#xx.demo.com
<VirtualHost *:80>
ServerAdmin service@demo.com
DocumentRoot "/web/app/demo"
ServerName xx.demo.net
ErrorLog logs/xx.demo.com-error_log
TransferLog logs/xx.demo.com-access_log
ErrorDocument 404 404.html
<Directory "/web/app/demo/">
Options FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Allow from all
</Directory>
Alias / /web/app/demo/ROOT/
JkMountFile conf/tomcat1_uriworkermap.properties
</VirtualHost>
重启apache,再观察tomcat中的访问日志,会发现只有动态请求,已经没有.jpg等静态文件请求了