`
sdkd_Tiger
  • 浏览: 26184 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Apache与Tomcat的三种连接方式介绍

    博客分类:
  • Web
阅读更多

一.        JK

 

这是最常见的方式,你可以在网上找到很多关于配置 JK 的网页,当然最全的还是其官方所提供的文档。 JK 本身有两个版本分别是 1 2 ,目前 1 最新的版本是 1.2.19 ,而版本 2 早已经废弃了,以后不再有新版本的推出了,所以建议你采用版本 1

 

JK 是通过 AJP 协议与 Tomcat 服务器进行通讯的, Tomcat 默认的 AJP Connector 的端口是 8009 JK 本身提供了一个监控以及管理的页面 jkstatus ,通过 jkstatus 可以监控 JK 目前的工作状态以及对到 tomcat 的连接进行设置,如下图所示

 

 

 

在这个图中我们可以看到当前 JK 配了两个连接分别到 8109 8209 端口上,目前 s2 这个连接是停止状态,而 s1 这个连接自上次重启后已经处理了 47 万多个请求,流量达到 6.2 G ,最大的并发数有 13 等等。我们也可以利用 jkstatus 的管理功能来切换 JK 到不同的 Tomcat 上,例如将 s2 启用,并停用 s1 ,这个在更新应用程序的时候非常有用,而且整个切换过程对用户来说是透明的,也就达到了无缝升级的目的。关于 JK 的配置文章网上已经非常多了,这里我们不再详细的介绍整个配置过程,但我要讲一下配置的思路,只要明白了配置的思路, JK 就是一个非常灵活的组件。

 

JK 的配置最关键的有三个文件,分别是

 

httpd.conf   

Apache 服务器的配置文件,用来加载 JK 模块以及指定 JK 配置文件信息

 

workers.properties      

Tomcat 服务器的连接定义文件

 

uriworkermap.properties          

URI 映射文件,用来指定哪些 URL Tomcat 处理,你也可以直接在 httpd.conf 中配置这些 URI ,但是独立这些配置的好处是 JK 模块会定期更新该文件的内容,使得我们修改配置的时候无需重新启动 Apache 服务器。

 

其中第二、三个配置文件名都可以自定义。下面是一个典型的 httpd.conf JK 的配置

 

# (httpd.conf)

# 加载 mod_jk 模块
LoadModule jk_module modules/mod_jk.so

 

#

# Configure mod_jk

#

 

JkWorkersFile conf/workers.properties

JkMountFile conf/uriworkermap.properties

JkLogFile logs/mod_jk.log

JkLogLevel warn

 

 

接下来我们在 Apache conf 目录下新建两个文件分别是 workers.properties uriworkermap.properties 。这两个文件的内容大概如下

 

#

# workers.properties

#

 

 

# list the workers by name

 

worker.list= DLOG4J, status

 

# localhost server 1

# ------------------------

worker.s1.port= 8109

worker.s1.host= localhost

worker.s1.type= ajp13

 

# localhost server 2

# ------------------------

worker.s2.port= 8209

worker.s2.host= localhost

worker.s2.type= ajp13

worker.s2.stopped= 1

 

worker.DLOG4J.type= lb

worker.retries= 3

worker.DLOG4J.balanced_workers= s1, s2

worker.DLOG4J.sticky_session= 1

 

worker.status.type= status

 

以上的 workers.properties 配置就是我们前面那个屏幕抓图的页面所用的配置。首先我们配置了两个类型为 ajp13 worker 分别是 s1 s2 ,它们指向同一台服务器上运行在两个不同端口 8109 8209 Tomcat 上。接下来我们配置了一个类型为 lb (也就是负载均衡的意思)的 worker ,它的名字是 DLOG4J ,这是一个逻辑的 worker ,它用来管理前面配置的两个物理连接 s1 s2 。最后还配置了一个类型为 status worker ,这是用来监控 JK 本身的模块。有了这三个 worker 还不够,我们还需要告诉 JK ,哪些 worker 是可用的,所以就有 worker.list = DLOG4J, status 这行配置。

 

接下来便是 URI 的映射配置了,我们需要指定哪些链接是由 Tomcat 处理的,哪些是由 Apache 直接处理的,看看下面这个文件你就能明白其中配置的意义

 

/*= DLOG4J

/jkstatus= status

 

!/*.gif=DLOG4J

!/*.jpg=DLOG4J

!/*.png=DLOG4J

!/*.css=DLOG4J

!/*.js=DLOG4J

!/*.htm=DLOG4J

!/*.html=DLOG4J

 

相信你已经明白了一大半了:所有的请求都由 DLOG4J 这个 worker 进行处理,但是有几个例外, /jkstatus 请求由 status 这个 worker 处理。另外这个配置中每一行数据前面的感叹号是什么意思呢?感叹号表示接下来的 URI 不要由 JK 进行处理,也就是 Apache 直接处理所有的图片、 css 文件、 js 文件以及静态 html 文本文件。

 

通过对 workers.properties uriworkermap.properties 的配置,可以有各种各样的组合来满足我们前面提出对一个 web 网站的要求。您不妨动手试试!

 

二.        http_proxy

 

这是利用 Apache 自带的 mod_proxy 模块使用代理技术来连接 Tomcat 。在配置之前请确保是否使用的是 2.2.x 版本的 Apache 服务器。因为 2.2.x 版本对这个模块进行了重写,大大的增强了其功能和稳定性。

 

http_proxy 模式是基于 HTTP 协议的代理,因此它要求 Tomcat 必须提供 HTTP 服务,也就是说必须启用 Tomcat HTTP Connector 。一个最简单的配置如下

 

ProxyPass /images !

ProxyPass /css !

ProxyPass /js !

ProxyPass / http://localhost:8080/

 

在这个配置中,我们把所有 http://localhost 的请求代理到 http://localhost:8080/ ,这也就是 Tomcat 的访问地址,除了 images css js 几个目录除外。我们同样可以利用 mod_proxy 来做负载均衡,再看看下面这个配置

 

ProxyPass /images !

ProxyPass /css !

ProxyPass /js !

 

ProxyPass / balancer://example/

<Proxy balancer://example/>

BalancerMember http://server1:8080/

BalancerMember http://server2:8080/

BalancerMember http://server3:8080/

</Proxy>

 

配置比 JK 简单多了,而且它也可以通过一个页面来监控集群运行的状态,并做一些简单的维护设置。

 

 

 

三.        ajp_proxy

 

ajp_proxy 连接方式其实跟 http_proxy 方式一样,都是由 mod_proxy 所提供的功能。配置也是一样,只需要把 http:// 换成 ajp:// ,同时连接的是 Tomcat AJP Connector 所在的端口。上面例子的配置可以改为

 

ProxyPass /images !

ProxyPass /css !

ProxyPass /js !

 

ProxyPass / balancer://example/

<Proxy balancer://example/>

BalancerMember ajp://server1:8080/

BalancerMember ajp://server2:8080/

BalancerMember ajp://server3:8080/

</Proxy>

 

采用 proxy 的连接方式,需要在 Apache 上加载所需的模块, mod_proxy 相关的模块有

mod_proxy.so mod_proxy_connect.so mod_proxy_http.so mod_proxy_ftp.so mod_proxy_ajp.so 其中 mod_proxy_ajp.so 只在 Apache 2.2.x 中才有。如果是采用 http_proxy 方式则需要加载 mod_proxy.so mod_proxy_http.so ;如果是 ajp_proxy 则需要加载 mod_proxy.so mod_proxy_ajp.so 这两个模块。

分享到:
评论

相关推荐

    Apache与Tomcat的几种连接方式介绍

    Apache与Tomcat的几种连接方式介绍 Apache与Tomcat的连接方式是Web开发中非常重要的一部分。Tomcat本身已经提供了HTTP服务,该服务默认的端口是8080,但我们仍然需要引入Apache或其他专门的HTTP服务器来提高静态...

    Apache HTTP Server 与 Tomcat 的三种连接方式介绍

    本文将详细介绍Apache HTTP Server与Tomcat的三种连接方式:独立模式、代理模式和集成模式。 一、独立模式 在独立模式下,Apache和Tomcat作为两个独立的服务器运行。Apache主要负责处理静态内容,如HTML、CSS、...

    Apache HTTP Server 与 Tomcat 的连接方式介绍

    三、Apache与Tomcat的连接方式 1. ** mod_jk 模块 ** Apache的mod_jk模块是Apache与Tomcat之间的常用连接桥梁。它实现了JK(Java Kona)协议,负责将HTTP请求转发到Tomcat实例,同时将响应返回给客户端。通过配置...

    Apache_HTTP_Server_与_Tomcat_的三种连接方式介绍.doc

    ### Apache HTTP Server 与 Tomcat 的三种连接方式详解 #### 引言 在现代Web开发环境中,Apache HTTP Server 和 Tomcat 是两种常见的服务器软件。Apache HTTP Server 以其强大的静态资源处理能力和灵活性著称,而 ...

    apache-tomcat-6.0.10.tar.gz_apache_apache安装包_tomcat6 un_unix tom

    Apache Tomcat是一款开源的Java Servlet容器,主要用于部署和运行Java Web应用程序,包括JSP和Servlet。这个"apache-tomcat-6.0.10.tar.gz"是Apache Tomcat的6.0.10版本,适用于Unix类操作系统,如Linux或macOS。此...

    apache-tomcat-6.0.29

    apache是普通服务器 本身只支持html即普通网页 不过可以通过插件支持php 还可以与Tomcat连通 单向Apache连接Tomcat 就是说通过Apache可以访问Tomcat资源 反之不然 Apache只支持静态网页 但像asp php cgi jsp等动态...

    apache-tomcat-9.0.27-apache-tomcat-10.0.27.zip

    Apache Tomcat是一款开源的Java Servlet容器,主要用于运行Java Web应用程序,包括JSP和Servlet。它由Apache软件基金会维护,是实现Java EE(现在称为Jakarta EE)Web Profile规范的重要组成部分。这个压缩包...

    apache-tomcat-7.0.75.zip

    不过可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)。Apache只支持静态网页,但像asp,php,cgi,jsp等动态网页就需要Tomcat来处理。 Tomcat是由Apache...

    ubuntu linux下apache与tomcat的整合.txt

    接下来,我们将详细介绍如何在 Ubuntu Linux 系统中安装配置 Apache 与 Tomcat 的整合。 #### 安装 mod_jk 模块 1. **下载并解压** `tomcat-connectors-1.2.15-src.tar.gz` 文件: ```bash tar -zxvf tomcat-...

    整合APACHE和TOMCAT的连接器

    整合APACHE和TOMCAT的连接器。Tomcat可以独立作为Web服务器运行,但是Tomcat的Web功能远没有Apache强大。在实际应用中,通过mod_jdk连接器(Connectors)将Apache和Tomcat整合在一起。通过连接器调用Tomcat服务的...

    apache2与tomcat整合

    总之,Apache2与Tomcat的整合是提升服务器性能和管理灵活性的有效方式。通过合理的配置,可以解决Tomcat在IP过滤等特定需求方面的不足,同时利用Apache的稳定性和扩展性,为业务提供稳定可靠的运行环境。

    apache-tomcat-6.0.18

    Apache Tomcat 6.0.18 是一个广泛使用的开源软件,主要作为Java Servlet和JavaServer Pages (JSP) 的容器。它实现了Java EE的Web应用程序部署规范,是开发和运行Java Web应用的重要平台。Tomcat是Apache软件基金会的...

    apache-tomcat-7.0.79.zip

    1. **Apache Tomcat介绍**:Apache Tomcat是由Apache软件基金会开发的Java Servlet容器,它是Java Community Process(JCP)的一部分,遵循Java EE规范。Tomcat主要负责解析HTTP请求,将动态内容通过Servlet或JSP...

    windows下整合apache和tomcat服务器的方法

    `workers.properties`文件定义了Apache和Tomcat之间的连接设置。在这个文件中,你需要指定Tomcat的安装路径、Java的安装路径以及每个worker(代表一个Tomcat实例)的详细配置,包括工作端口、主机名和类型。例如: ...

    apache-tomcat-6.0.35和apache-tomcat-6.0.35 src

    Apache Tomcat是一款开源的Java Servlet容器,主要用于实现JavaServer Pages (JSP)、Servlet和Java EE的Web应用程序。在这个压缩包中,包含了两个版本:`apache-tomcat-6.0.35` 和 `apache-tomcat-6.0.35 src`。前者...

    apache-tomcat-10.0.20

    Apache Tomcat是一个开源的软件应用服务器,主要用于运行Java Servlets和JavaServer Pages(JSP)。在本案例中,我们讨论的是版本10.0.20,这是一个重要的更新,包含了性能改进、安全修复以及可能的新功能。Apache ...

    apache-tomcat-10.0.16-windows-x64.zip

    不仅可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)。Apache只支持静态网页,但像php,cgi,jsp等动态网页就需要Tomcat来处理。 Tomcat是由Apache软件...

    apache-tomcat-8.5.27.tar.gz

    1. **下载与解压**:首先从Apache官方网站下载"apache-tomcat-8.5.27.tar.gz",然后使用`tar -zxvf apache-tomcat-8.5.27.tar.gz`命令进行解压。 2. **配置环境变量**:将Tomcat的bin目录添加到系统的PATH环境变量...

    Apache与Tomcat整合的简单方法.pdf

    本文将详细介绍在Linux环境下如何将Apache与Tomcat进行整合,并提供具体的步骤和配置方法。 #### 二、准备工作 确保系统中已正确安装并配置好JDK。接下来需要下载以下三个文件: 1. **httpd-2.2.0.tar.gz**:这是...

Global site tag (gtag.js) - Google Analytics