文章目录

  • 1, ajp proxy
  • 2, mod_jk: httpd 模块
    • a, 下载mod_jk源码包,编译httpd插件
    • b, 配置mod_jk

1, ajp proxy

  • ajp代理使用场景:后台存在多个tomcat服务时(单个tomcat服务,使用代理性能低)
############ ajp: tcp协议代理: 4层 ############
[root@c7-docker conf]# cat /opt/apache-tomcat-8.5.63/conf/server.xml<Connector port="8009" protocol="AJP/1.3"address="0.0.0.0"maxHttpHeaderSize="8192"enableLookups="false"connectionTimeout="20000"URIEncoding="utf-8"acceptCount="1000"redirectPort="8443"secretRequired=""secret=""/>[root@c7-docker conf]# cat /etc/httpd/conf.d/a.conf
Listen 81
<VirtualHost *:81>ServerAdmin webmaster@host.example.com#DocumentRoot "/www/81"ServerName host.example.comErrorLog "logs/host.example.com-error_log"TransferLog "logs/host.example.com-access_log"ProxyVia OnProxyRequests OffProxyPreserveHost OnProxyPass / ajp://127.0.0.1:8009/ProxyPassReverse / ajp://127.0.0.1:8009/Header set Access-Control-Allow-Origin *
</VirtualHost>Listen 822
<proxy balancer://ajp_tom_cluster>BalancerMember ajp://127.0.0.1:8009    loadfactor=10BalancerMember ajp://192.168.56.6:8009 loadfactor=10
</proxy>
<VirtualHost *:822>ProxyRequests OffErrorLog "logs/822-error_log"CustomLog "logs/822-access_log" commonProxyPass / balancer://ajp_tom_cluster/ProxyPassReverse / balancer://ajp_tom_cluster/Header set Access-Control-Allow-Origin *
</VirtualHost>

2, mod_jk: httpd 模块

a, 下载mod_jk源码包,编译httpd插件

文档:
https://tomcat.apache.org/connectors-doc/

#解压后,进入native目录
[root@c7-docker native]# yum install -y  httpd-devel #获取apxs可执行文件
[root@c7-docker native]# ./configure   --with-apxs=/usr/bin/apxs
#./configure --with-apache=/home/apache24/httpd-2.4.12[root@c7-docker native]# ll /usr/lib64/httpd/modules/mod_jk.so
-rwxr-xr-x 1 root root 1566328 Feb 26 15:39 /usr/lib64/httpd/modules/mod_jk.so[root@c7-docker native]# ls apache-2.0/
bldjk54.qclsrc  config.m4  Makefile.apxs     Makefile.in  mod_jk.a  mod_jk.la  mod_jk.o
bldjk.qclsrc    Makefile   Makefile.apxs.in  Makefile.vc  mod_jk.c  mod_jk.lo  mod_jk.so[root@c7-docker native]# head /etc/httpd/conf.modules.d/00-proxy.conf
# This file configures all the proxy modules:
LoadModule jk_module   modules/mod_jk.so[root@c7-docker native]# httpd -M |grep jkjk_module (shared)

b, 配置mod_jk

文档:
https://tomcat.apache.org/connectors-doc/common_howto/quick.html
https://tomcat.apache.org/tomcat-4.0-doc/config/ajp.html
workers.properties 配置:https://tomcat.apache.org/connectors-doc/reference/workers.html

[root@c7-docker conf]# cat /etc/httpd/conf.d/a.conf
# Load mod_jk
LoadModule jk_module   modules/mod_jk.so
# Configure mod_jk
JkShmFile     /var/log/httpd/mod_jk.shm
JkWorkersFile /etc/httpd/conf/jk-workers.properties
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
#
Listen 82
<VirtualHost *:82>DocumentRoot /www/82JkMount /* ajp13#JkMount /*.jsp ajp13#JkMount /servlet/* ajp13Header set Access-Control-Allow-Origin *
</VirtualHost>[root@c7-docker conf]# cat /etc/httpd/conf/jk-workers.properties
workers.tomcat_home=/opt/apache-tomcat-8.5.63
workers.java_home=/usr/java/default
ps=/
worker.list=ajp12, ajp13
# Definition for Ajp13 worker
worker.ajp13.port=8009
worker.ajp13.host=127.0.0.1
worker.ajp13.type=ajp13
# worker "ajp13" uses connections, which will stay no more than 10mn in the connection pool
worker.ajp13.connection_pool_timeout=600
# worker "ajp13" ask operating system to send KEEP-ALIVE signal on the connection
worker.ajp13.socket_keepalive=1
  • mod_jk 负载均衡:多个后台tomcat文档:
    https://tomcat.apache.org/connectors-doc/common_howto/loadbalancers.html

######### lb 多个后台tomcat  ##########
[root@c7-docker conf]# cat /etc/httpd/conf.d/a.conf
# Load mod_jk
LoadModule jk_module   modules/mod_jk.so
# Configure mod_jk
JkShmFile     /var/log/httpd/mod_jk.shm
JkWorkersFile /etc/httpd/conf/jk-workers.properties
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
#
Listen 82
<VirtualHost *:82>DocumentRoot /www/82JkMount /* lbclusterJkMount /jkstatus  stat1#JkMount /*.jsp ajp13#JkMount /servlet/* ajp13Header set Access-Control-Allow-Origin *
</VirtualHost>[root@c7-docker conf]# cat /etc/httpd/conf/jk-workers.properties
workers.tomcat_home=/opt/apache-tomcat-8.5.63
workers.java_home=/usr/java/default
ps=/
worker.list = lbcluster,stat1
worker.basic.socket_keepalive=1
worker.basic.connect_timeout=10000# Definition for Ajp13 worker
worker.lbcluster.type = lb
worker.lbcluster.sticky_session = 0
worker.lbcluster.balance_workers = TomcatA, TomcatB
#
worker.stat1.type = status
#
worker.TomcatA.type = ajp13
worker.TomcatA.host = 192.168.56.6
worker.TomcatA.port = 8009
worker.TomcatA.lbfactor = 1
#
worker.TomcatB.type = ajp13
worker.TomcatB.host = 127.0.0.1
worker.TomcatB.port = 8010
worker.TomcatB.lbfactor = 1#tomcat server.xml
[root@c7-docker conf]# cat /opt/apache-tomcat-8.5.63/conf/server.xml:jvmRoute="TomcatB"<Connector port="8009" protocol="AJP/1.3"address="0.0.0.0"maxHttpHeaderSize="8192"enableLookups="false"connectionTimeout="20000"URIEncoding="utf-8"acceptCount="1000"redirectPort="8443"secretRequired=""secret=""/><!-- You should set jvmRoute to support load-balancing via AJP ie :jvmRoute="jvm1"  --><Engine name="Catalina" defaultHost="localhost" jvmRoute="TomcatB"> #查看mod_jk日志
[root@c7-docker ROOT]# tailf /var/log/httpd/mod_jk.log
[Wed Mar 03 14:16:10.045 2021] [19101:139632599426816] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1064): (TomcatB) Failed opening socket to (192.168.56.117:8010) (errno=111)
[Wed Mar 03 14:16:10.045 2021] [19101:139632599426816] [error] ajp_send_request::jk_ajp_common.c (1724): (TomcatB) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=111)
[Wed Mar 03 14:16:10.045 2021] [19101:139632599426816] [info] ajp_service::jk_ajp_common.c (2774): (TomcatB) sending request to tomcat failed (recoverable), because of error during request sending (attempt=2)
[Wed Mar 03 14:16:10.045 2021] [19101:139632599426816] [error] ajp_service::jk_ajp_common.c (2795): (TomcatB) connecting to tomcat failed (rc=-3, errors=1, client_errors=0).
[Wed Mar 03 14:16:10.045 2021] [19101:139632599426816] [info] service::jk_lb_worker.c (1600): service failed, worker TomcatB is in error state
[Wed Mar 03 14:16:10.045 2021] [19101:139632599426816] [info] service::jk_lb_worker.c (1652): Forcing recovery once for 2 workers
[Wed Mar 03 14:23:14.893 2021] [27857:140686857304256] [info] init_jk::mod_jk.c (3591): mod_jk/1.2.48 initialized

ajp协议: httpd 代理 tomcat集群相关推荐

  1. Tomcat集群+Nginx反向代理+负载均衡

    Tomcat集群 所谓tomcat集群,就是向外提供并行服务的多台机器,任何一台服务器宕机,其他服务器还可以代替它向外提供服务,从而不影响用户访问 为了提高tomcat集群的高可用性,还需要实现ngi ...

  2. nginx 反向代理负载均衡 tomcat集群应用

    nginx 反向代理负载均衡 tomcat集群应用 环境介绍: 系统:centos5.8_64 192.168.0.201:nginx服务器 192.168.0.202:tomcat服务器 192.1 ...

  3. kubernetes入门到精通(二):k8s部署Tomcat集群,基于NTFS协议的文件集群共享,Service提供负载均衡,端口转发工具Rinetd配置外部访问

    首先,配置 Docker 镜像加速服务 登录阿里云账号,进入控制台 -> 容器镜像服务 (不需要有阿里云的服务器,只要注册账号即可) 在两台 node 节点上配置好阿里云的镜像加速. 重启一下 ...

  4. Apache负载均衡+Tomcat集群

    http://weijie.blog.51cto.com/340746/68195 APACHE 2.2.8+TOMCAT6.0.14配置负载均衡 目标: 使用 apache 和 tomcat 配置一 ...

  5. Apache + Tomcat集群配置详解(1)

    Apache + Tomcat集群配置详解(1) 一.软件准备 Apache 2.2 : http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl ...

  6. windows apache 负载均衡配置 Tomcat集群配置

    2019独角兽企业重金招聘Python工程师标准>>> 1.安装 exe可执行文件的安装方式:http://jingyan.baidu.com/article/ed15cb1b73b ...

  7. windows下tomcat集群配置(两种方法)

    两种方法只是在配置上不同原理一样,因为apache2.X后其自身集成了mod_jk功能,相对于1.3版本,不需要再进行繁琐的worker.properties配置,配置过程大幅简化. 一.软件需求 操 ...

  8. 使用apache搭建tomcat集群

    1.安装apache 1.1 下载ApacheX64.rar,并解压 1.2 修改Apache24\conf\httpd.conf文件 配置根目录: 配置ip和端口 1.2 安装apache服务器 以 ...

  9. 传统分布式架构部署(apache+tomcat集群)

    背景: 单一服务器部署应用在往往随着应用人数的增加和频率的提高及后续数据量的增大会达到瓶颈,服务器会出现卡顿.崩溃等情况:所以在不改变应用结构的情况下只能进行部署架构上的变化,即使用apache(Ap ...

最新文章

  1. qt 多个模型如何显示在表格中_Qt MOOC系列教程 第五章第四节:QML中的C++模型
  2. php繁体拼音字母,php获取中文字符串的首字符拼音字母
  3. 递归算法——汉诺塔问题
  4. mysql重置密码以及授予权限
  5. 机器学习时显卡频率莫明其妙的降低了?
  6. python使用hash256加密验证字符串
  7. 孙宇晨:BM跑路或是觉得做项目是一种负担
  8. 【报告分享】人工智能新时代报告.pdf(附下载链接)
  9. yii配置mysql_YII2中配置MySQL读写分离
  10. sqlite 无符号32_《符号与传媒》2020年总目录
  11. Android ImageButton单击切换按钮图片效果
  12. Windows10关于拨号上网热点分享的操作
  13. Mac没有winnt格式_Mac本地视频播放软件----EVPlayer
  14. 【大厂智力题】64匹马,8个赛道,找出前4名最少比赛多少场?
  15. 2020年数学建模国赛C题Demo【准确率只有61%,仅供参考】
  16. windbg抓一个windows蓝屏分析
  17. 贝荣粒分享:谈谈兼职的坑
  18. python过滤unicode控制字符
  19. 期刊(ECAI)投稿论文排版——LATEX
  20. linux efi 启动原理,Linux系统启动过程

热门文章

  1. 测序组学助力新的酶发现
  2. 无人驾驶之车道线检测(一)
  3. 解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
  4. CGB2104-Day03
  5. 05-【公司解决问题】公司解决问题5之k8s问题(部署单元挂载存储卷启动报错:nfs挂载错误wrong fs type, bad option, bad superblock)
  6. 超简单java环境配置(2021版)
  7. 商业隔断装修中的材料选择有何注意事项?
  8. 计算机上面的字体怎么应用,电脑应用程序字体怎么调大
  9. You cannot remove a running container 3293ac4d69dca61ecef7fdf13017f192fab7666901fbcf8f9bbcf1524ed519
  10. python后端开发技术论坛_自学 Python后端开发 到什么程度可以找工作?