mod_jk模块实现apache转发tomcat

#系统环境
centos7.3
#tomcat version
Apache Tomcat/7.0.76
#apache version
Server version: Apache/2.4.6
#jdk version
1.8.0_191

一、如果 /usr/lib64/httpd/modules/ 目录下没有 mod_jk.so,需要进行安装,操作如下:

1、依赖安装:

yum -y install gcc httpd-devel

2、mod_jk下载与解压:
网址:https://tomcat.apache.org/download-connectors.cgi

wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.tar.gz
tar -zxvf tomcat-connectors-1.2.46-src.tar.gz
cd tomcat-connectors-1.2.46-src/native/

3、编译及安装:
在tomcat-connectors-1.2.46-src/native/文件夹下执行:
配置安装:

./configure --with-apxs=/usr/bin/apxs(此处apxs地址可能不一样,可用命令" whereis apxs "来查看)

4、编译及安装:

make && make install

5、将文件拷贝过去:(有可能在上一步安装完/usr/local/apache24/modules/目录下就有该文件了)

cp ./apache-2.0/mod_jk.so /usr/local/apache24/modules/

二、mod_jk模块配置

1、配置/etc/httpd/conf/httpd.conf 文件,在配置文件末尾添加如下代码:

# 加载 mod_jk module
LoadModule jk_module modules/mod_jk.so
<IfModule jk_module>
# 声明workers.properties位置——配置tomcat工作者
  JkWorkersFile conf/workers.properties
# 声明uriworkermap.properties位置——对网页的过滤规则
  JkMountFile conf/uriworkermap.properties
# 声明mod_jk的日志文件位置
  JkLogFile logs/mod_jk.log
# 声明mod_jk的日志级别 [debug/error/info](可选)
  JkLogLevel info
# Where to put jk shared memory
  JkShmFile logs/mod_jk.shm
# 声明mod_jk的日志的时间戳格式(可选)
  JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
</IfModule>

2、创建并配置/etc/httpd/conf/workers.properties文件,内容如下:

# 为mod_jk模块指明Tomcat的安装路径
workers.tomcat_home=$CATALINA_HOME
# 为mod_jk模块指明JDK的安装路径
workers.java_home=$JAVA_HOME
# 添加一个worker到worker列表
# 注:worker.list中worker的名字应该是对应到Apache Http Server的httpd.conf配置文件中的JkMount的
worker.list=tomcat1
# 为tomcat-list设定各个参数
# 工作端口,Tomcat的默认Connector监听端口,可以查看Tomcat的Server.xml中有port="8009",此端口应该与server.xml中Connector元素的 AJP/1.3 协议所使用的端口相匹配
worker.tomcat1.port=8009
# Tomcat所在机器,如果安装在与apache不同的机器则需要设置IP
worker.tomcat1.host=localhost
# worker的类型,允许的值为ajp13、ajp14、lb、status等;ajp13是mod_jk连接WebServer和Tomcat的首选方式(即使用socket作为通信渠道)
worker.tomcat1.type=ajp13
# 负载平衡因,表示权重
worker.tomcat1.lbfactor=1

3、创建并配置/etc/httpd/conf/uriworkermap.properties,这个文件是控制什么文件被Apache处理,实现动静分离,内容如下:

#定义tomcat处理的文件类型,tomcat不处理的由apache来处理。
/*=tomcat1 # 所有的请求都由 tomcat1 这个 worker 进行处理  
/jkstatus=jk-status #/jkstatus 请求由 status 这个 worker 处理
!/*.jpg=tomcat1  
!/*.gif=tomcat1  
!/*.png=tomcat1  
!/*.bmp=tomcat1
!/*.html=tomcat1  
!/*.htm=tomcat1  
!/*.swf=tomcat1
!/*.css=tomcat1  
!/*.js=tomcat1 

小节:另一种配置文件写法见 https://blog.csdn.net/kesixin/article/details/77779021  第四部分

三、其他配置:

1、找到httpd.conf中的DirectoryIndex index.html在后面添加 index.jsp

DirectoryIndex index.html index.jsp

2、把tomcat的server.xml文件中appBase改成Apache的项目路径

<Host name="localhost"  appBase="/var/www/html/" unpackWARs="true" autoDeploy="true">

3、(这步好像可以不做)把tomcat的server.xml文件<Host></Host>标签之间加入,docBase路径要和Apache路径一样

<Context path="" docBase="/var/www/html/" debug="0" reloadable="true" crossContext="true"/>

四、相关文件说明:

httpd.conf 配置文件说明:

#监听端口
Listen 80

#主机名:#域名+端口来标识服务器,没有域名用ip也可以
ServerName localhost:80

#服务器根目录
ServerRoot "/etc/httpd"

#不许访问根目录
<Directory />
    AllowOverride none
    Require all denied
</Directory>

#项目发布目录
DocumentRoot "/var/www/html"

# 对/var/www目录访问限制
<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

#对/var/www/html目录访问限制
<Directory "/var/www/html">
   Options Indexes FollowSymLinks
   AllowOverride None
   Require all granted
</Directory>

#默认编码
AddDefaultCharset UTF-8

#EnableMMAP off
EnableSendfile on

# include进来其它配置文件
IncludeOptional conf.d/*.conf

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值