#系统环境
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