apache服务部署tomcat(详解Apache 和 Tomcat 整合原理、配置方案)
apache服务部署tomcat
详解Apache 和 Tomcat 整合原理、配置方案Apache 和 Tomcat 都是Web服务器,它们之间既有联系又有区别。Apache主要负责静态解析,如HTML。Tomcat主要负责动态解析,如JSP。
为什么要让 Apache 与 Tomcat 之间进行连接呢?
原因有下面几个:
提升对静态文件的处理性能
利用 Web 服务器来做负载均衡以及容错
无缝的升级应用程序
Apache 和 Tomcat整合原理:
Apache负责处理HTML静态内容
Tomcat负责处理动态内容
换而言之:Apache是一辆车,上面可以装一些东西如html等,但是不能装水,要装水必须要有桶(容器),而这个桶也可以不放在卡车上,那这个桶就是Tomcat。
Apache HTTP Server 与 Tomcat 的三种连接方式
JK
编译生成mod_jk模块
在apache中加载mod_jk并对其进行配置
在tomcat中修改配置以使其能接受mod_jk的转发
编译生成mod_jk.so,然后将其复制到httpd加载模块默认的目录/etc/httpd/modules
yum install httpd-devel -y #编译生成apache扩展依赖apxs,如未安装先安装
wgethttp://mirrors.hust.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz
tar-zxftomcat-connectors-1.2.42-src.tar.gz
cdtomcat-connectors-1.2.42-src/native/
./configure--with-apxs=/usr/sbin/apxs
make
cp./apache-2.0/mod_jk.so/etc/httpd/modules/
https://tomcat.apache.org/download-connectors.cgi
JK 是通过 AJP 协议与 Tomcat 服务器进行通讯的,Tomcat 默认的 AJP Connector 的端口是 8009。
JK 本身提供了一个监控以及管理的页面 jkstatus,通过 jkstatus 可以监控 JK 目前的工作状态以及对到 tomcat 的连接进行设置,如下图所示:
图中JK配了两个连接分别到 8109 和 8209 端口上,
也可以利用 jkstatus 的管理功能来切换 JK 到不同的 Tomcat 上,例如将 s2 启用,并停用 s1
JK 的配置最关键的有三个文件,分别是
httpd.conf
Apache 服务器的配置文件,用来加载 JK 模块以及指定 JK 配置文件信息
workers.properties
到 Tomcat 服务器的连接定义文件
Workers实际上属于Tomcat的链接器(Connector),代表了一个Tomcat实例,这个实例代表了由某种web服务器来执行 servelet程序。
举例来说,我们可以使用某个服务器,例如apache 来把servelet请求转递Tomcat进程(worker)来进行后台处理。
Tomcat workers都定义在一个叫做workers.properties属性文件之中,并且workers的说明告诉应该如何使用它们。
可以通过属性文件来为Tomcat Web服务器插件定义Worker。(在conf/下有个文件名为wo rkers.properties就是一个可用Workers属性文件).
worker.list=<由逗号分离开的worker名称列表>
worker.list= worker1, worker2
当启动服务器的时候,Web服务器插件会把这些出现在worker.list属性中出现名字的worker实例化,而这些也就是你可以用来映射请求的worker
Workers的类型
对于每个有名字的worker都会有若干条目给使用者提供worker自身的附加信息。这些信息包括worker的类型和与之相关的worker的信息。JK 1.2.5中包含下列的worker类型:
类型 说明
ajp12 这种worker知道如何使用ajpv12协议去给用来外部处理的worker传递一个请求。
ajp13 这种worker知道如何使用ajpv13协议去给用来外部处理的worker传递一个请求。
lb 这是一个负载平衡worker;它知道怎样在一定容错范围内提供一个基于粘性负载的循环。
status 这是一个状态worker来管理负载平衡。
sticky_session指明带有会话线程ID的请求是否应该被发送回到同一个Tomcat worker。
uriworkermap.properties
URI 映射文件,用来指定哪些 URL 由 Tomcat 处理,
配置httpd.conf
接下来我们在 Apache 的 conf 目录下新建两个文件分别是 workers.properties、uriworkermap.properties。这两个文件的内容大概如下
首先我们配置了两个类型为 ajp13 的 worker 分别是 s1 和 s2,它们指向同一台服务器上运行在两个不同端口 8109 和 8209 的 Tomcat 上。
接下来我们配置了一个类型为 lb(也就是负载均衡的意思)的 worker,它的名字是 ZYKJ,这是一个逻辑的 worker,它用来管理前面配置的两个物理连接 s1 和 s2。
最后还配置了一个类型为 status 的 worker,这是用来监控 JK 本身的模块。
有了这三个 worker 还不够,我们还需要告诉 JK,哪些 worker 是可用的,所以就有 worker.list = ZYKJ, status 这行配置。
接下来便是 URI 的映射配置了,我们需要指定哪些链接是由 Tomcat 处理的,哪些是由 Apache 直接处理的
所有的请求都由 ZYKJ 这个 worker 进行处理,但是有几个例外,/jkstatus 请求由 status 这个 worker 处理。
感叹号表示接下来的 URI 不要由 JK 进行处理,也就是 Apache 直接处理所有的图片、css 文件、js 文件以及静态 html 文本文件。
通过对 workers.properties 和 uriworkermap.properties 的配置,可以有各种各样的组合来满足我们前面提出对一个 web 网站的要求
二、http_proxy
这是利用 Apache 自带的 mod_proxy 模块使用代理技术来连接 Tomcat。
http_proxy 模式是基于 HTTP 协议的代理,因此它要求 Tomcat 必须提供 HTTP 服务,也就是说必须启用 Tomcat 的 HTTP Connector。一个最简单的配置如下
在这个配置中,我们把所有 http://localhost 的请求代理到 http://localhost:8080/ ,这也就是 Tomcat 的访问地址,除了 images、css、js 几个目录除外。我们同样可以利用 mod_proxy 来做负载均衡,再看看下面这个配置
三、ajp_proxy
ajpproxy 连接方式其实跟 httpproxy 方式一样,都是由 mod_proxy 所提供的功能。配置也是一样,只需要把 http:// 换成 ajp:// ,同时连接的是 Tomcat 的 AJP Connector 所在的端口。上面例子的配置可以改为:
采用 proxy 的连接方式,需要在 Apache 上加载所需的模块,mod_proxy 相关的模块有
mod_proxy.so、
modproxyconnect.so、
modproxyhttp.so、
modproxyftp.so、
modproxyajp.so
总结
相对于 JK 的连接方式,后两种在配置上是比较简单的,灵活性方面也一点都不逊色。但就稳定性而言就不像 JK 这样久经考验,如果是应用于关键的互联网网站,还是建议采用 JK 的连接方式。
- apache协议内容(Apache中rewrite伪静态规则介绍)
- apache服务器的主配置(Apache中.htaccess文件功能)
- apache怎么配置服务器(Apache2 WEB服务器的配置步骤分享)
- net微服务架构部署方式(基于Apache的支持.NET2.0的Web服务器搭建)
- win10怎么安装apache(apache启动失败怎么办 快速解决Win10系统apache启动失败的方法教程)
- xampp在什么操作系统中不能使用(xampp apache启动失效问题的解决方法)
- 怎么用apache自定义网站根目录(Apache 二级域名实现方法介绍)
- apache安装与配置windows(Apache 安装和使用文档)
- apache虚拟目录配置(Apache 添加虚拟目录注意事项)
- idea中tomcat快速部署(IDEA编辑器整合Apache Tomcat的详细教程)
- apache错误编码代码(关于Apache默认编码错误 导致网站乱码的解决方案)
- 静态web服务器nginx(WEB服务器该选择 Apache 还是 Nginx?)
- apache实时框架(教你快速开启Apache SkyWalking的自监控)
- ssl服务器搭建的步骤(windows apache环境下部署SSL证书让网站支持https的配置方法)
- mysql5.7.19下载及安装教程(Apache2.2.16+PHP5.3.3+MySQL5.1.49的配置方法)
- apache跳转配置(Apache 的 order deny allow 设置说明)
- 新晋小花被称女版吴卓羲 将取代滕丽名成为TVB新一代御用女警(新晋小花被称女版吴卓羲)
- 艺人吴卓羲10年警察生涯,演足10年阿Sir,系咩玩法(艺人吴卓羲10年警察生涯)
- 菲律宾潜水(菲律宾潜水价格)
- 泰国人妖(变性手术生殖器要割掉吗)
- 泰国美女(泰国人妖和女性如何区分)
- 泰国旅游业怎么样(泰国的旅游产业)
热门推荐
- easyui中使用编辑器在IE下有时无法获取焦点
- 如何用python创建单链表(Python3实现的反转单链表算法示例)
- ftp服务器如何设置指定用户访问(FTP 服务器关于权限的问题)
- JS闭包的用法
- js event对象
- php生成json信息(php使用json-schema模块实现json校验示例)
- vue接收网络请求数据类型配置(vue中对接Graphql接口的实现示例)
- sqlserver 怎么排序(SQLserver排序规则基本概念探索)
- sqlserver如何可视化表(sql server使用公用表表达式CTE通过递归方式编写通用函数自动生成连续数字和日)
- dedecms屏蔽规则(使用Dedecms中七个容易忽略的安全细节介绍)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9