一.准备
a、安装Aapche (httpd-2.2.22.tar.gz)
1.解压
tar -xzf httpd-2.2.22.tar.gz
2.改变权限
chown root.root -R httpd-2.2.22
3.配置安装路径,安装
cd httpd-2.2.22
./configure --prefix=/usr/local/apache
make && make install
注:(如果用高版本apache自带的)有些LoadModules 模块没有的话
在安装程序的/root/httpd-2.2.22/modules/proxy下找到 相应的*.c文件
进入$APACHE_HOME/bin,执行以下命令以生成mod_proxy.so和mod_proxy_http.so文件:
./apxs -aic /root/httpd-2.2.22/modules/proxy/mod_proxy.c /root/httpd-2.2.22/modules/proxy/proxy_util.c //生成mod_proxy.so
./apxs -aic /root/httpd-2.2.22/modules/proxy/mod_proxy_http.c //生成mod_proxy_http.so
备注:apxs是apache中一个编译、安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用LoadModule指令在运行时加载到apache服务器中。
/usr/local/apache/bin/apachectl start //启动
/usr/local/apache/bin/apachectl stop //停止
/usr/local/apache/bin/apachectl restart //重启
b.安装mod_jk (tomcat-connectors-1.2.32-src.tar.gz)
1.解压
tar xzf tomcat-connectors-1.2.32-src.tar.gz
2.配置安装路径,安装
cd tomcat-connectors-1.2.32-src/native/
./configure --with-apxs=/usr/local/apache/bin/apxs
make && make install
ll /usr/local/apache/modules/mod_jk.so
二.配置
tomcat配置修改
server.xml文件
1.找到 <Engine name="Catalina" defaultHost="localhost"> 修改为 <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker_1"> //jvmRoute="worker标记"
2.找到ajp端口配置(默认8009),apacheworker.worker_1.port=这个端口,端口不冲突可不改,
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
修改端口(测试改的8029)
<Connector port="8029" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
apache配置修改
a.修改/usr/local/apache/conf/httpd.conf,在httpd.conf文件的末尾添加如下内容:
Include conf/extra/mod_jk.conf
b.在Apache\conf\extra\目录下新建文件:mod_jk.conf(touch mod_jk.conf),内容如下:
#load module mod_jk-1.2.31-httpd-2.2.3.so is for Apache 2.2.x.
LoadModule jk_module modules/mod_jk.so
#配置 mod_jk conf
#加载集群中的workers
JkWorkersFile conf/workers.properties
#加载workers的请求处理分配文件
JkMountFile conf/uriworkermap.properties
#指定jk的日志输出文件
JkLogFile logs/mod_jk.log
#指定日志级别
JkLogLevel info
c.在Apache\conf\目录下新建文件:workers.properties,内容如下
#worker列表
worker.list=LB_worker,jkstatus
#worker.list=worker_1,worker_2
#第一个worker的配置,名为worker_1
#tomcat的主机地址,如不为本机,请填写ip地址
worker.worker_1.host=222.73.250.222
#ajp13 端口号,对应tomcat配置文件server.xml中Connector port="8009",默认8009
worker.worker_1.port=8029
worker.worker_1.type=ajp13
#负载的权重值,越高表示负载越大
worker.worker_1.lbfactor=2
#第二个worker的配置,名为worker_2
worker.worker_2.host=222.73.250.164
#ajp13 端口号,对应tomcat配置文件server.xml中Connector port="9009"
worker.worker_2.port=8029
worker.worker_2.type=ajp13
worker.worker_2.lbfactor=1
#LB_worker,用于负载均衡分发的控制器
worker.LB_worker.type=lb
#重试次数
worker.LB_worker.retries=3
#指定负载的worker列表,用逗号分隔
worker.LB_worker.balance_workers=worker_1,worker_2
#配置session会话是否为粘性
#这样负载均衡器lb就会尽量保持一个session,也就是使用户在一次会话中跟同一个Tomcat进行交互
worker.LB_worker.sticky_session=true
#如果sticky_session设为true时,此处一般设为false
worker.LB_worker.sticky_session_force=false
#设置运行状态的控制器
worker.jkstatus.type=status
d.Apache\conf\目录下新建文件:uriworkermap.properties,内容如下:
#所有请求都由LB_worker这个worker处理
/*=LB_worker
#所有包含jkstatus请求的都由名称叫jkstatus的这个worker处理
/jkstatus=jkstatus
#所有以.gif、.jpg等等结尾的请求都不经过名称叫LB_worker的worker处理
# ! 表示 非 的意思
#!/*.jpg=LB_worker #tomcat不处理图片,图片由apache处理.静态文件放在Apache2.2\htdocs\下,路径一致就OK