及时做个记录,不至于几天后全忘了白忙活一场。
适合在一台服务器同时部署PHP项目和Javaweb项目、负载均衡等等。
准备工作
PHP环境、jdk环境在此就省略不多提了
开工:Apache、Tomcat安装……此处略去5万字。。。
1.将下载下来的jk命名为mod_jk.so,并丢到${apacheRoot}/modules/下;
2.编辑Apache的httpd.conf配置文件
改端口为80
#Listen 12.34.56.78:80
Listen 80
去掉LoadModule rewrite_module modules/mod_rewrite.so的注释
去掉LoadModule vhost_alias_module modules/mod_vhost_alias.so注释
在底部添加下面代码
<VirtualHost *:80>
ServerName www.baidu.com
ServerAlias baidu.com *.baidu.com
DirectoryIndex index.php index.html
#定义能够访问的资源路径允许客户端访问此路径
JkMount /* jvm1
JkUnMount /*.html jvm1
JkUnMount /index* jvm1
JkUnMount / jvm1
DocumentRoot "D:/phpapps"
<Directory "D:/phpapps">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
#让apache加载mod_jk.so模块
LoadModule jk_module modules/mod_jk.so
# 此处 mod_jk.so 文件为你下载的文件
JkWorkersFile "D:/Tomcat 9.0/conf/workers.properties"
# 指定tomcat监听配置文件地址worker.properties不可更改名称,为jk指定
JkLogFile "D:/Tomcat 9.0/logs/mod_jk2.log"
# 指定日志存放位置
JkLogLevel info
注意:Apache2.2与Apache2.4的<Directory></Directory>设置有区别
apache2.2
Options FollowSymLinks -Indexes
Order Deny,Allow
Allow from all
apache2.4
Options FollowSymLinks -Indexes
AllowOverride All
Require all granted
3.创建worker.properties,并丢到${tomcatROOT}/conf/下
rs.tomcat_home=D:\Tomcat 9.0
#让 mod_jk 模块感知 Tomcat
workers.java_home=D:\jdk1.8.0_60
#让 mod_jk 模块感知 jre
ps=\
#指定文件路径分割符
worker.list=jvm1
worker.ajp13.port=8009
#工作端口,此端口应该与server.xml中Connector元素的 AJP/1.3 协议所使用的端口相匹配
worker.ajp13.host=localhost
#Tomcat服务器的地址
worker.ajp13.type=ajp13
#类型
worker.ajp13.lbfactor=1
#负载平衡因数
4.修改${tomcatROOT}/conf/下的server.xml
将默认<Engine name="Catalina" defaultHost="localhost">
改为<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
5.分别将PHP项目和Javaweb项目部署到apache和Tomcat,启动服务,测试。。。
测试结果,所有.html结尾或带有/index的请求都由Apache自己处理,其他请求转发给Tomcat处理。。