动静分离是指将动态请求和静态请求分别交给不同的服务器来处理,可以提高服务器的效率和性能。在Java Web开发中,常见的动态请求处理方式是通过Tomcat来处理,而静态请求则可以通过Apache服务器来处理。本文将详细讲解如何结合Apache和Tomcat来实现动静分离。
目录
1、Apach:httpd+Tomcat(jk)
1)环境部署:
2)添加jk模块信息的.conf配置文件
3)服务器连接定义文件
4)准备网页文件
1、Apach:httpd+Tomcat(jk)
- JK 是通过 AJP 协议与 Tomcat 服务器进行通讯的,Tomcat 默认的 AJP Connector 的端口是 8009。JK本身提供了一个监控以及管理的页面 jkstatus,通过 jkstatus 可以监控 JK 目前的工作状态以及对到tomcat 的连接进行设置。
1)环境部署:
#安装jdk
yum install -y jdk-8u261-linux-x64.rpm
#获取JK包。两台服务器主机都需要安装
https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz
#解压
tar xf tomcat-connectors-1.2.48-src.tar.gz -C /usr/local/src/
#编译前安装 httpd-devel
yum install -y httpd-devel gcc gcc-c++
#编译
cd /usr/local/src/tomcat-connectors-1.2.48-src/native
./configure --with-apxs=/usr/bin/apxs #---apxs由httpd-devel提供
make && make install
2)添加jk模块信息的.conf配置文件
# vim /etc/httpd/conf.d/mod_jk.conf
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories
jkRequestLogFormat "%w %V %T"
JkMount /*.jsp worker1
JkMount /servlet/* worker1
JkMount /*.do worker1
JkMount /*.action worker1
JkMount /jkstatus status
3)服务器连接定义文件
#vim /etc/httpd/conf/workers.properties
workers.tomcat_home=/usr/local/tomcat/
workers.java_home=/usr/java/jdk1.8.0_261-amd64
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=192.168.127.163
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.list = status
worker.status.type=status
4)准备网页文件
echo '<h1>static_page_from_apache-httpd</h1>' > /var/www/html/index.html
echo '<h1>dynamic_page_from_tomcat</h1>' > /usr/local/tomcat/webapps/ROOT/test.js