httpd+Tomcat(jk)的Web动静分离搭建

动静分离是指将动态请求和静态请求分别交给不同的服务器来处理,可以提高服务器的效率和性能。在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)环境部署:

bash 复制代码
#安装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配置文件

bash 复制代码
# 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)服务器连接定义文件

bash 复制代码
#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)准备网页文件

bash 复制代码
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
相关推荐
稚南城才子,乌衣巷风流5 小时前
函数:编程中的核心概念
开发语言·前端·javascript
IT_陈寒5 小时前
为什么我的JavaScript异步代码总是不按顺序执行?
前端·人工智能·后端
索西引擎6 小时前
【React】useState 状态更新机制:批量更新策略与“异步“错觉的深层解析
前端·react.js·前端框架
慢功夫6 小时前
💡第五篇:VSCode插件是如何与主进程通信的?
前端·visual studio code
锋行天下6 小时前
打造企业内部知识库系统RAG全栈项目
前端·后端·架构
竹林8186 小时前
用 ethers.js 连接 MetaMask 实现钱包登录:一个真实项目中的完整踩坑记录
前端·javascript
虚惊一场7 小时前
在浏览器里跑 Prettier:格式化 Markdown 的四个难点
前端·javascript·vue.js
前端炒粉7 小时前
手撕小汇总
java·前端·javascript
r_oo_ki_e_7 小时前
vue快速入门
前端·vue.js
虚惊一场7 小时前
把 CodeMirror 6 调教成 Markdown 编辑器:扩展、装饰与门面
前端·javascript·vue.js