1、apache tomcat整合一般来讲,配置apache和tomcat的整合有三种方式,mod_proxy,mod_ajp和mod_jk等三种方式,前2种配置步骤类似且 相对容易,且只支持apache2.2以后的版本,mod_jk则配置相对复杂,但强在稳定性和性能方面,因为没有系统的写过这方面的文档,故在此简要的 记录下使用mod_proxy和mod_jk两种方式来整合apache和tomcat!三种方式的对比,具体请参考:本文环境介绍:os版本:centos5.4 64bitjdk版本:jdk-6u2-linux-i586.bintomcat版本:7.0.29apache版本:2.4.2ap
2、ache服务器IP:192.168.123.110/24tomcat实例一IP:192.168.123.110/24 (端口默认)tomcat实例二IP:192.168.123.20/24 (端口默认)一:mod_proxy方式的整合1:编译安装apache,需要编译proxy相关的模块,这里采用目前最新版的apache2.4.21 rootdb1 # tar -zxvpf httpd-2.4.2.tar.gz 2 rootdb1 # cd httpd-2.4.2 3 rootdb1 httpd-2.4.2# ./configure -prefix=/usr/local/apache -ena
3、ble-proxy -enable-proxy-ajp -enable-rewrite -enable-so -enable-headers -enable-expires -enable-modules-shared=most -with-apr=/usr/local/apr/ -with-apr-util=/usr/local/apr-util/ 4 rootdb1 httpd-2.4.2# make 5 rootdb1 httpd-2.4.2# make install 若启动apache出现下面的错误,基本上属于apr的问题,要么apr没安装,要么版本不对!rootdb1 # /usr
4、/local/apache/bin/apachectl -t httpd: Syntax error on line 113 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/mod_proxy.so intoserver: /usr/local/apache/modules/mod_proxy.so: undefined symbol: apr_global_mutex_lockfilerootdb1 # yum remove apr rootdb1 # /usr/local/apache/
5、bin/apachectl -t Syntax OKrootdb1 # /usr/local/apache/bin/apachectl -t -D DUMP_MODULES |grep proxy proxy_module (shared) proxy_connect_module (shared) proxy_ftp_module (shared) proxy_http_module (shared) proxy_fcgi_module (shared) proxy_scgi_module (shared) proxy_ajp_module (shared) proxy_balancer_m
6、odule (shared) proxy_express_module (shared)2:配置apache的虚拟主机1 rootdb1 # /usr/local/apache/bin/apachectl -t -D DUMP_VHOSTS 2 VirtualHost configuration: 3 *:80 is a NameVirtualHost 4 default server 192.168.123.110 (/usr/local/apache/conf/extra/httpd-vhosts.conf:23) 5 port 80 namevhost 192.168.123.110 (
7、/usr/local/apache/conf/extra/httpd-vhosts.conf:23) 6 port 80 namevhost 192.168.123.110 (/usr/local/apache/conf/extra/httpd-vhosts.conf:23) 7 port 80 namevhost (/usr/local/apache/conf/extra/httpd-vhosts.conf:31) 8 port 80 namevhost (/usr/local/apache/conf/extra/httpd-vhosts.conf:31) 若启动apache报错如下,则需要
8、加载mod_slotmem_shm.so模块,之前在使用apache中很少用到mod_proxy模块,所以遇到的问题多多!rootdb1 # /usr/local/apache/bin/apachectl -k start rootdb1 # echo $? 0 rootdb1 # netstat -ntpl |grep :80 rootdb1 # cat /usr/local/apache/logs/error_log Fri Aug 10 18:32:25.298436 2012 proxy_balancer:emerg pid 7859:tid 47937562389216 AH0117
9、7: Failed to lookup providershm for slotmem: is mod_slotmem_shm loaded? Fri Aug 10 18:32:25.298650 2012 :emerg pid 7859:tid 47937562389216 AH00020: Configuration Failed, exiting Fri Aug 10 18:34:04.717801 2012 proxy_balancer:emerg pid 7876:tid 47508265659104 AH01177: Failed to lookup providershm for
10、 slotmem: is mod_slotmem_shm loaded? Fri Aug 10 18:34:04.717951 2012 :emerg pid 7876:tid 47508265659104 AH00020: Configuration Failed, exitingrootdb1 # grep slotmem /usr/local/apache/conf/httpd.conf LoadModule slotmem_shm_module modules/mod_slotmem_shm.sorootdb1 # /usr/local/apache/bin/apachectl -k
11、start rootdb1 # netstat -ntpl |grep :80 tcp 0 0 :80 :* LISTEN 7898/httpd注意:2.4.2版本的apache中需要在目录下面添加 Require all granted,否则无论怎么访问都是403,悲了个催的!具体报错如下:Fri Aug 10 19:07:13.263893 2012 authz_core:error pid 8918:tid 1126259008 client 192.168.123.102:53420 AH01630: client denied by server configuration: /tm
12、p9 rootdb1 # grep -v # /usr/local/apache/conf/extra/httpd-vhosts.conf |grep -v $ 10 11 ServerName 192.168.123.110 12 13 Order deny,allow 14 Deny from all 15 16 17 18 ServerName 19 DocumentRoot /tmp 20 21 Options +indexes 22 Order allow,deny 23 Allow from all 24 Require all granted 25 26 3:安装jdk和tomc
13、at,并启动tomcat1 rootdb2 # java -version 2 java version 1.6.0 3 OpenJDK Runtime Environment (build 1.6.0-b09) 4 OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode) 5 6 rootdb2 # /usr/local/tomcat7/bin/startup.sh 7 Using CATALINA_BASE: /usr/local/tomcat7 8 Using CATALINA_HOME: /usr/local/tomcat7 9 Us
14、ing CATALINA_TMPDIR: /usr/local/tomcat7/temp 10 Using JRE_HOME: /usr/local/java 11 Using CLASSPATH: /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar 12 13 rootdb2 # netstat -ntpl |grep java 14 tcp 0 0 :ffff:127.0.0.1:8005 :* LISTEN 7601/java 15 tcp 0 0 :8009 :* LISTEN 7601/java 16 tcp 0 0 :8080 :* LISTEN 7601/java 4:使用mod_proxy转发jsp的请求,test目录,tomcat.css,tomcat.png请求使用apache处理17 18 ServerName 19 DocumentRoot /tmp
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1