1、服务器安装 tomcat
2、服务器安装 apache (httpd)
注意事项:
1、如果是手动编译apache的话,必须下载到服务器之后在编译,不能编译
好了在上传到服务器。
2、apache tomcat 交互模块,mod_jk.so 也跟上面的一样。
3、如果选择的是 yum 安装 ,有可能缺少编译器 GCC、G++等,可以参考
https://codebeamer.com/cb/wiki/93719
3、负载均衡的概念,简单理解就是 apache 监听指定端口的所有请求,而且负责从指定的目录查找静态资源,如 js脚本,css样式文件等,而如果是 jsp 等动态生成的文件要交给tomcat处理,当然这些都是由配置而设定的。
4、具体详细步骤见以下链接:
http://blog.csdn.net/chaijunkun/article/details/6987443
5、httpd.conf 除了设置监听端口 Listen 80 端口之外,其它暂时可以不用去修改。
6、我的配置参考:
httpd.conf 文件里包含了另外一个配置文件:
#<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
#Include /etc/httpd/conf.d/mod_mono.conf
Include conf/app_njhw/httpd-vhosts-tomcat.conf ---- (新加行)
目录结构为:
cas.mapping.properties主要配置了资源类型
/* =tomcat8009
!/jk-status=tomcat8009
!/jk-manager=tomcat8009
!/excelTemplateFile/*.xls=tomcat8009
!/*.ico=tomcat8009
!/*/*.png=tomcat8009
!/*/*.jpg=tomcat8009
!/*/*.gif=tomcat8009
!/*/*.css=tomcat8009
!/*/*.js=tomcat8009
httpd-vhosts-tomcat.conf 虚拟主机配置
NameVirtualHost *:80
<VirtualHost *:80>
<Directory "/usr/local/webapps/cas">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
DocumentRoot "/usr/local/webapps/cas"
ServerName 192.168.1.1 (ip地址或者是域名)
ServerAlias http://192.168.1.1 (别名)
JkMountFile conf/app_njhw/cas.mapping.properties
ErrorLog "|/usr/sbin/rotatelogs /etc/httpd/logs/error-njhw-%Y-%m-%d-%H_%M_%S.log 5M"
CustomLog "|/usr/sbin/rotatelogs /etc/httpd/logs/access-njhw-%Y-%m-%d-%H_%M_%S.log 5M" common
</VirtualHost>
tomcat-workers.properties 跟apache关联的tomcat ,跟server.xml 里jvmRoute="tomcat8009"对应
# SERVER LIST
worker.list =tomcat8009,jk-manager,jk-status
# TOMCAT 8009
worker.tomcat8009.type =ajp13
worker.tomcat8009.host =localhost
worker.tomcat8009.port =8009
问题集锦:
1、配置正常、运行正常,但是 JS,CSS等静态资源无法加载,用firebug查看网络请求,发现所有请求后面都有类似jsessionid=5D438D45EF205A7109586F9A3AC54316.tomcat8009等的字段,这里的jsessionid为 URL 重写而成,tomcat8009是在tomcat/conf/server.xml里配置的jvmRoute名字。
如:<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat8009">
此时需要设置 httpd.conf 里 JkStripSession 属性为on JkStripSession On,问题解决。
顾名思义就是apache查找资源的时候忽略jsessionid这种后缀,这样请求路径就正常了。