mod_proxy:提供代理的功能,而mod_jk是作为一个独立的连接器存在,所以性能上要比较高;
- mod_jk:mod_jk实质上是Apache与Tomcat的连接器,并藉此附带提供集群和负载均衡的功能。
- mod_jk2:mod_jk的升级版,但官方已不再支持;
mod_proxy_http:mod_proxy提供http反向代理;
- mod_proxy_ajp :这个使用二进制方式传输,与通过http协议代理到后端相比,效率更高,而且在进行访问tomcat时不允许不经过反向代理过来;
- mod_proxy_banlancer:负载均衡时用到;
如果使用tomcat做集群,建议使用httpd做反向代理;
环境配置:
tomcat主机:
- 192.168.10.8
- 192.168.10.9
- 安装jdk和tomcat. 参考:46_03(实验)
1 | #vim /usr/local/tomcat/conf/server.xml |
192.168.10.106安装httpd,对后端的Tomcat做反向代理:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26安装httpd的配置选项:
#./configure --prefix=/usr/local/apache \
--sysconfdir=/etc/httpd \
--enable-so \
--enable-rewrite \
--enable-ssl \
--with-zlib \
--with-pcre \
--enable-cgi \
--enable-cgid \
--enable-modules=most \
--enable-deflate \
--enable-mods-shared=most \
--enable-mpms-shared=all \
--with-mpm=event \
--enable-proxy \
--enable-proxy-http \
--enable-proxy-ajp \
--enable-proxy-balancer \
--enable-lbmethod-heartbeat \
--enable-heartbeat \
--enable-slotmem-shm \
--enable-slotmem-plain \
--enable-watchdog \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util
配置apache通过mod_proxy模块与tomcat连接
需要使用mod_proxy与tomcat实例连接,需要apache已经装载mod_proxy、mod_proxy_http、mod_proxy_ajp和proxy_balancer_module(实现tomcat集群时用到)等模块;
1 | #/usr/local/apache/bin/httpd -D DUMP_MODULES | grep proxy #默认没有,可以在配置文件中查找proxy然后启动这些; |
1 | #vim /etc/httpd/httpd.conf |
注释中心主机,添加
Include /etc/httpd/extra/httpd-proxy.conf
让apache跟tomcat的http连接器进行整合:
1 | #vim /etc/httpd/extra/httpd-proxy.conf |
重启httpd即可实现反向代理。
这个地方我没有添加httpd启动脚本,自己看前面的;;
http://172.16.100.106/index.jsp
需要着重明白这句话,所有的请求都会交给后端的Tomcat处理,httpd并不会处理任何请求,所以网页要放在tomcat指定的目录下;
【方式二】 配置apache跟tomcat的mod_jk连接器进行整合:
1 | #tar xf tomcat-connectors-1.2.37-src.tar.gz |
至此,一个基于mod_jk模块与后端名为Tomcat1的worker通信的配置已经完成,重新httpd服务即可生效;