apache tomcat ajp mod jk


环境

系统:centos 7.3

Apache:2.4.27

Modjk:1.2.42

Tomcat:8.5

Jdk:1.8.92

Apr:1.6.2

Apr-util:1.6.0

关闭所有防火墙和selinux

systemctlstop firewalld
serviceiptables stop
setenforce0

一、安装Apache

1、     安装依赖

yum -y install wget gcc gcc-c++ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2libxml2-devel curl-devel libjpeg* libpng* freetype* pcre-devel bzip2-devellibmcrypt-devel  libmhash  libexpat1 libexpat1-dev

2、     安装apr

tar xzvf apr-1.6.2.tar.gz ;cdapr-1.6.2;
./configure--prefix=/usr/local/apr
make && make install

3、     安装apr-util

tar xzvf apr-util-1.6.0.tar.gz ;cdapr-util-1.6.0
./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
make && make install

4、     安装apache2.4

tar xzvf httpd-2.4.27.tar.gz ;cdhttpd-2.4.27

编译apache之前要把解压后的apr和apr-util复制一分到apache解压后的源码目录中的srclib子目录一,不然会报错。configure: error: BundledAPR requested but not found at ./srclib/. Download and unpack the correspondingapr and apr-util packages to ./srclib/.

cp -a apr-1.6.2httpd-2.4.27/srclib/apr
cp -a apr-util-1.6.0httpd-2.4.27/srclib/apr-util
./configure--prefix=/usr/local/apache --with-included-apr --enable-so--enable-deflate=shared --enable-expires=shared --enable-rewrite=shared--enable-static-support --with-mpm=worker --disable-userdir--enable-proxy-balancer --enable-proxy-http--enable-proxy-connect  --enable-proxy --enable-rewrite--enable-proxy-ajp
make && make install

5、     安装mod jk

tar xzvftomcat-connectors-1.2.42-src.tar.gz ;cd tomcat-connectors-1.2.42-src/native
./configure--with-apxs=/usr/local/apache/bin/apxs
make && make install

二、安装Tomcat

1、   安装jdk

rpm -ivhjdk-8u92-linux-x64.rpm

2、   安装和配置tomcat

tar xzvfapache-tomcat-8.5.15.tar.gz -C /usr/local/

解压两个tomcat,分别命名为tomcat1  tomcat2

因为我们在同一台机上实验,所以要修改第二个tomcat的http和ajp端口,避免端口冲突。这里不再叙述

修改server.xml如下几个地方

    <Engine name="Catalina" defaultHost="localhost" 
jvmRoute="tomcat1">

这里添加一个tomcat1,作为等下mod jk转发的路由,另一台为tomcat2

     <Host name="localhost" appBase=""
           unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
 <Context path="" docBase="/www/1" debug="0"reloadable="false" crossContext="true" />

这里定义程序网站根目录

         <ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs" 
      prefix="localhost_access_log."suffix=".txt" pattern="common"resolveHosts="false"/>

这里定义日志和格式

3、   启动tomcat

sh /usr/local/tomcat1/bin/catalina.sh start
sh /usr/local/tomcat2/bin/catalina.sh start

测试两个tomcat是否能正常访问,返回200为正常,也可用浏览测试。根据自己改的端口来测试。

curl -I192.168.2.72:8080
curl -I192.168.2.72:8180

三、配置Apache mod jk转发

1、在httpd.conf中找到LoadModule添加

LoadModule jk_module modules/mod_jk.so

打开和添加如下两行,打开vhost和mod_jk的配置

Include conf/extra/httpd-vhosts.conf
Include conf/mod_jk.conf

2、在apache的conf目录下创建mod_jk.conf

#cat mod_jk.conf
JkWorkersFileconf/workers.properties
JkLogFile/usr/local/apache/logs/jk.log
JkShmFile/usr/local/apache/logs/jk-runtime-status
JkLogLevelerror
JkLogStampFormat"[%d %H:%M:%S] "
JkOptions+ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat"%w  %V  %U%q %s  %T"

3、创建workers.properties文件

# cat workers.properties
worker.list=controller,tomcat1,tomcat2
 
# tomcat1
worker.tomcat1.port=8009
worker.tomcat1.host=127.0.0.1
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
worker.tomcat1.connection_pool_size=500
worker.tomcat1.connection_pool_minsize=25
worker.tomcat1.connection_pool_timeout=300
worker.tomcat1.socket_timeout=20
 
worker.tomcat2.port=8109
worker.tomcat2.host=127.0.0.1
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
worker.tomcat2.connection_pool_size=500
worker.tomcat2.connection_pool_minsize=25
worker.tomcat2.connection_pool_timeout=300
worker.tomcat2.socket_timeout=20
 
#========controllertomcat online =======
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2
worker.controller.sticky_session=1
worker.controller.connection_pool_size=1000
worker.controller.connection_pool_minsize=50
worker.controller.connection_pool_timeout=300
worker.controller.socket_timeout=20

4、配置httpd-vhosts.conf

<VirtualHost*:80>
        ServerName www.yy.com
        DocumentRoot "/www/1"
        ErrorLog "logs/yy-error_log"
        CustomLog"logs/yy-access_log" common
        JkMount /*.html*    controller
        JkMount /*.tt*    controller
        JkMount /*.index*    controller
     <Directory />
        AllowOverride none
        Options -Indexes
        AllowOverride All
        Require all granted
         </Directory>
</VirtualHost>
[[email protected] www]# ls
1  2
[[email protected] www]# ls *
1:
1.tt  index.html
2:
1.tt  index.html

/www/1和/www/2分别是tomcat1 和tomcat2的根目录。里面放置一样的文件名,但内容不同。然后刷新浏览器,看内容是否会不停变化,如果会就主明转发成功了。

        JkMount /*.html*    controller

这个是定义所有.html的请求都转发到tomcat处理,这里是实验,生产中应该把动太内容发给tomcat处理,如jsp等。

时间: 2024-10-12 05:17:08

apache tomcat ajp mod jk的相关文章

Apache Tomcat AJP协议高危漏洞风险提示

关于Apache Tomcat存在文件包含漏洞的安全公告 2020年1月6日,国家信息安全漏洞共享平台(CNVD)收录了由北京长亭科技有限公司发现并报送的Apache Tomcat文件包含漏洞(CNVD-2020-10487,对应CVE-2020-1938).攻击者利用该漏洞,可在未授权的情况下远程读取特定目录下的任意文件.目前,漏洞细节尚未公开,厂商已发布新版本完成漏洞修复. 一.漏洞情况分析 Tomcat是Apache软件基金会Jakarta 项目中的一个核心项目,作为目前比较流行的Web应

关于Apache Tomcat AJP协议高危漏洞的风险提示

一.漏洞公告 2020年2月4日,Apache Tomcat官方发布了新的版本,该版本修复了一个影响所有版本(7.*.8.*.9.*)的文件包含漏洞,但官方暂未发布安全公告,2020年2月20日,CNVD发布了漏洞公告,对应漏洞编号:CNVD-2020-10487,漏洞公告链接:https://www.cnvd.org.cn/flaw/show/CNVD-2020-10487 根据公告,Apache Tomcat存在的文件包含漏洞能导致配置文件或源码等敏感文件被读取,建议尽快升级到漏洞修复的版本

Apache + Tomcat + JK 集群

原文请见http://www.cnblogs.com/dennisit/p/3370220.html 本文介绍了集群和负载均衡的基本开源实现,实现了用Apache分发请求到多个Tomcat里面相应的应用. 模块介绍 - Apache作为Webserver.用于处理静态Http请求: - Tomcat作为应用server(Servlet容器),处理动态请求: - JK 作为Apache与Tomcat之间的桥梁,实现了Apache与Tomcat一对多的相应.使后端Tomcat负载均衡. 开发环境 -

Apache + Tomcat + JK 实现负载均衡和集群(状态复制)

原文请见http://www.cnblogs.com/dennisit/p/3370220.html 本文介绍了集群和负载均衡的基本开源实现,实现了用Apache分发请求到多个Tomcat里面对应的应用. 模块介绍 - Apache作为Web服务器,用于处理静态Http请求: - Tomcat作为应用服务器(Servlet容器),处理动态请求: - JK 作为Apache与Tomcat之间的桥梁,实现了Apache与Tomcat一对多的对应,使后端Tomcat负载均衡. 开发环境 - Windo

Apache + Tomcat + JK 实现负载均衡和集群

本文介绍了集群和负载均衡的基本开源实现,实现了用Apache分发请求到多个Tomcat里面对应的应用. 模块介绍 - Apache作为Web服务器,用于处理静态Http请求: - Tomcat作为应用服务器(Servlet容器),处理动态请求: - JK 作为Apache与Tomcat之间的桥梁,实现了Apache与Tomcat一对多的对应,使后端Tomcat负载均衡. 开发环境 - Windows 7操作系统 - Java SE8 - Apache 2.2.14    (本地安装路径:D:\A

Apache+tomcat或Nginx+tomcat集群搭建

Apache+tomcat集群搭建 1.http://httpd.apache.org/下载apache,本博客以httpd-2.4.12-x86-vc11-r2版本为例(第一个发行版中的) 2.http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/windows/ 下载mod_jk 3.注意Apache和mod_jk的版本,32bit后者64bit要统一 4.apache的httpd.conf文件可能有点问题

搭建集群(apache+tomcat+mod_jk)

一个mod_jk,一个apache,二个tomcat: apache版本      httpd-2.2.27.tar.gztomcat版本      apache-tomcat-6.0.41.tar.gz jdk             jdk-6u13-linux-i586.binjk              tomcat-connectors-1.2.40-src.tar.gz 1.软件的安装:  2.配置文件的修改: apache的配置文件主要有三个:httpd.conf,mod_jk.

基于Apache+Tomcat负载均衡的两种实现方法

Apache+Tomcat实现负载均衡的两种实现方法 如果我们将工作在不同平台的apache能够实现彼此间的高效通信,因此它需要一种底层机制来实现--叫做apr Apr的主要目的就是为了其能够让apache工作在不同的平台上,但在linux上安装apache的时候通常都是默认安装的 [[email protected] ~]#rpm -qi aprName                 :apr                                        Relocation

Tomcat:基于Apache+Tomcat的集群搭建

根据Tomcat的官方文档说明可以知道,使用Tomcat配置集群需要与其它Web Server配合使用才可以完成,典型的有Apache和IIS. 这里就使用Apache+Tomcat方式来完成基于Tomcat在集群配置. 软件准备 1)Apache HTTP Server: 使用百度搜索httpd-2.2.25-win32-x86-no_ssl.msi,应该可以找到很多相关的下载链接.这里也提供一个:http://vdisk.weibo.com/s/C3trk_uGGkrmc 2)Tomcat