Linux Apache JK配置出错怎么办?apache jk mod_jk配置详解

在 Linux 环境下,Apache 配合 JK (mod_jk) 是一种经典的架构,主要用于将 Apache 作为前端 Web 服务器(处理静态资源、SSL 终止等),并将动态请求转发给后端的 Tomcat 或 Jetty 等应用服务器。

mod_jk 是 Apache 的一个模块,它使用 AJP (Apache JServ Protocol) 协议与后端应用服务器通信。

Linux操作系统-Apache服务器的安装
加载中
Linux操作系统-Apache服务器的安装

以下是完整的配置指南,涵盖安装、配置和常见问题。


架构简述

[ 客户端 ] --> [ Apache (mod_jk) :80/443 ] --> [ AJP 协议 ] --> [ Tomcat :8009 ]
  • Apache: 负责静态文件(HTML/CSS/JS/图片)、SSL 加密、负载均衡。
  • mod_jk: Apache 的连接器模块。
  • Tomcat: 运行 Java Web 应用,监听 AJP 端口(默认 8009)。

安装步骤

1 安装 Apache 和 mod_jk

Ubuntu/Debian:

sudo apt update
sudo apt install apache2 libapache2-mod-jk

CentOS/RHEL:

sudo yum install httpd mod_jk
# 或者在较新版本中使用 dnf
sudo dnf install httpd mod_jk

2 安装 Tomcat

确保 Tomcat 已安装并正在运行,默认情况下,Tomcat 的 AJP 连接器在 server.xml 中是启用的,监听端口为 8009。


配置 Tomcat

确保 Tomcat 的 server.xml 中启用了 AJP 连接器:

<!-- 在 server.xml 的 <Service> 标签内 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

注意:如果修改了 Tomcat 配置,请重启 Tomcat。

Linux Apache JK配置出错怎么办?apache jk mod_jk配置详解


配置 mod_jk

mod_jk 的主要配置文件通常位于 /etc/libapache2-mod-jk/ 或 /etc/httpd/conf/ 目录下。

1 创建 workers.properties

定义后端 Tomcat 服务器列表。

文件路径: /etc/libapache2-mod-jk/workers.properties

# 定义 worker 名称
worker.list=worker1
# 定义 worker1 的类型为 ajp13
worker.worker1.type=ajp13
# 指定 Tomcat 主机地址(本地则为 localhost)
worker.worker1.host=localhost
# 指定 Tomcat 的 AJP 端口(默认 8009)
worker.worker1.port=8009
# 设置负载因子(用于负载均衡,单节点可忽略)
worker.worker1.lbfactor=1

2 配置 Apache 加载 mod_jk

文件路径: /etc/apache2/mods-available/jk.conf (Ubuntu) 或 /etc/httpd/conf.d/jk.conf (CentOS)

# 加载 mod_jk 模块
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
# 或者在 CentOS 上可能是: LoadModule jk_module modules/mod_jk.so
# 指定 workers.properties 文件路径
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
# 指定 JK 日志文件路径
JkLogFile /var/log/apache2/mod_jk.log
# 设置日志级别 (info, debug, error, trace)
JkLogLevel info
# 指定哪些请求需要转发给 Tomcat
# 所有以 .jsp, .do, .action 结尾的请求
JkMount /.jsp worker1
JkMount /.do worker1
JkMount /.action worker1
# 或者:将所有请求都转发(不推荐,静态文件会由 Tomcat 处理,效率低)
# JkMount / worker1

提示:在 Ubuntu 上,你可能需要启用该模块:

sudo a2enmod jk

3 配置虚拟主机(可选但推荐)

为了更精细地控制,建议在虚拟主机配置中指定 JkMount。

Linux Apache JK配置出错怎么办?apache jk mod_jk配置详解

文件路径: /etc/apache2/sites-available/000-default.conf 或自定义 vhost 文件

<VirtualHost :80>
    ServerName www.example.com
    DocumentRoot /var/www/html
    # 静态文件由 Apache 直接处理
    <Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    # 动态请求转发给 Tomcat
    JkMount /app/ worker1
    JkMount /app/.jsp worker1
    # 日志
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

重启服务

# 重启 Apache
sudo systemctl restart apache2
# 或
sudo systemctl restart httpd
# 检查 Tomcat 是否运行
sudo systemctl status tomcat

验证配置

  1. 访问 Apache 的静态页面,确认能正常显示。
  2. 访问动态页面(如 /app/test.jsp),确认能由 Tomcat 处理并返回结果。
  3. 查看日志:
    tail -f /var/log/apache2/mod_jk.log

常见问题与排查

Q1: 502 Bad Gateway 或 Connection Refused

  • 原因:Tomcat 未启动,或 AJP 端口(8009)未监听。
  • 解决:检查 Tomcat 状态,确认 server.xml 中 AJP 连接器已启用。

Q2: 静态文件访问慢

  • 原因:如果配置了 JkMount / worker1,所有请求都会转发给 Tomcat,包括 CSS/JS/图片。
  • 解决:只将动态请求(如 .jsp, .do, /api/)转发给 Tomcat,静态文件由 Apache 直接提供。

Q3: mod_jk 已弃用?

Linux Apache JK配置出错怎么办?apache jk mod_jk配置详解

  • 现状:mod_jk 确实已停止维护多年,Apache 官方推荐使用 mod_proxy_ajp 或 mod_proxy_http。
  • 替代方案:
    • mod_proxy_ajp: 配置更简单,无需 workers.properties。
      LoadModule proxy_module modules/mod_proxy.so
      LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
      ProxyPass /app ajp://localhost:8009/app
      ProxyPassReverse /app ajp://localhost:8009/app
    • mod_proxy_http: Tomcat 配置了 HTTP 连接器(默认 8080),可以使用 HTTP 协议转发。
      ProxyPass /app http://localhost:8080/app
      ProxyPassReverse /app http://localhost:8080/app

建议:如果是新项目,推荐使用 mod_proxy_ajp 或 mod_proxy_http,它们更轻量且维护更好。mod_jk 仅建议在遗留系统中使用。


特性 mod_jk mod_proxy_ajp
协议 AJP 1.3 AJP 1.3
配置文件 需要 workers.properties 直接在 Apache 配置中指定
维护状态 已停止维护 活跃维护
性能 良好 良好
推荐度 仅用于遗留系统 新项目推荐

如果你正在搭建新系统,建议直接使用 mod_proxy_ajp 或 mod_proxy_http,如果必须使用 mod_jk,请确保正确配置 workers.properties 和 JkMount。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/478317.html

赞 (0)
Excel表格怎么换行分列?
上一篇 2026年7月10日 05:18
H5本地数据库最大存储量是多少?indexedDB存储上限
下一篇 2026年7月10日 05:20

相关推荐

  • 1p网络服务器多少钱

    一台1P(1U)网络服务器的租用价格通常在每月300元至2000元之间,具体取决于配置、带宽和机房等级;若是托管自购服务器,则每年机位费约5000元到1.2万元,这篇文章把价格构成拆开揉碎,帮你算出最符合实际需求的预算,1P服务器价格差距为何如此之大“1P”在IDC行业里通常指1U机架式服务器,厚度4.45厘米……

    2026年8月17日
    1200
  • 三旺np301串口服务器多少钱?,值得买吗?

    三旺np301串口服务器市场报价通常在800-1500元区间,实际成交价受采购数量、渠道以及是否包含云管理服务等因素影响,采购时建议结合具体应用场景和长期运维成本综合决策,价格区间与影响因素官方报价与市场行情三旺np301的官方指导价基于不同配置有所区分,基础有线型号定价接近1000元,而带Wi-Fi或工业宽温……

    2026年8月2日
    1500
  • linux怎么关闭显卡?linux关闭显卡驱动命令

    在 Linux 系统中,“关闭显卡”通常指的是禁用独立显卡(NVIDIA/AMD)以节省电量,或者禁用集成显卡,具体操作取决于你的硬件架构(Intel + NVIDIA 双显卡,或纯 AMD/NVIDIA)以及你使用的显示服务器(X11 或 Wayland),以下是几种常见场景和方法:禁用 NVIDIA 独立显……

    2026年7月10日
    13400
  • linux ls color怎么设置?linux命令颜色配置详解

    在Linux终端中让ls命令显示彩色文件,最核心的方法是修改.bashrc配置文件中的alias ls=’ls –color=auto’,或者确保系统已安装并正确配置了dircolors工具,这能显著提升文件管理的视觉效率和安全性,很多刚接触Linux的用户会发现,终端里的文件列表全是黑白灰的,不仅看起来枯燥……

    2026年7月6日
    10400
  • 海媚v8服务器传送速度到底多快,哪款配置最划算

    海媚v8服务器的传送速度并非固定值,在千兆网络环境下其实际数据吞吐量通常能达到100MB/s以上,具体取决于硬盘性能、网络带宽及服务器负载,海媚v8服务器传送速度的构成要素海媚v8服务器作为KTV点播系统的核心硬件,其传送速度由多个环节共同决定,任何一个短板都会拉低整体表现,硬盘接口与存储介质海媚v8服务器标配……

    2026年8月23日
    700
  • Linux下arp命令怎么用?linux查看arp缓存表

    Linux下的ARP(地址解析协议)是局域网通信的基石,它负责将IP地址映射为MAC地址,通过arp命令或/proc/net/arp文件进行查看与管理,确保数据帧能在物理网络中准确投递,在日常运维或网络调试中,我们常遇到“Ping不通”或“网络延迟高”的情况,很多时候问题根源就在于ARP表项异常,理解并掌握Li……

    2026年7月4日
    3300
  • 服务器480g企业级硬盘价格多少,怎么选

    服务器480g企业级硬盘的价格并非固定值,根据近年IDC行业采购均价,480g SAS 15K企业级硬盘价格集中在3000-5000元,而480g企业级SATA固态硬盘则在2000-4000元区间,NVMe型号更高,影响480g企业级硬盘价格的核心因素接口类型决定基础成本企业级硬盘常见接口包括SAS、SATA和……

    2026年8月6日
    1000
  • 云服务器1M带宽能支持多少人在线,带宽不够怎么办?

    1M带宽的云服务器,在网页压缩后约100KB的前提下,理论并发上限大约在5-10人,日均支撑500-1500次页面浏览(PV)是现实的,但具体数值取决于单个请求大小和用户行为模式,这个结论基于带宽计算公式:1Mbps = 128KB/s,若页面总大小为100KB,理想状态下每秒可传输1.28个页面,实际生产中……

    2026年8月29日
    500
  • 麦子茶会服务器IP到底是多少,我的世界服务器IP怎么查

    麦子茶会服务器的IP是 play.maizichahui.com,Java版基岩版双端通用,当前版本适配1.20.1及以上客户端,如果你在游戏内输入这个地址无法连接,多半是网络线路或DNS解析问题,请按下文步骤逐项排查,先确认IP格式与端口麦子茶会服务器采用标准Minecraft通信协议,默认端口为25565……

    2026年9月11日
    300
  • web服务器默认端口是多少?常见端口有哪些?

    Web服务器默认端口是80(HTTP)和443(HTTPS),其中443是目前绝大多数网站实际使用的主要端口,当用户在浏览器输入域名时,浏览器默认访问的就是这两个端口,无需手动指定,端口在Web访问中扮演什么角色端口是服务器与外界通信的逻辑通道,一台服务器可以同时运行多个服务,端口号就是区分这些服务的“门牌号……

    2026年8月28日
    700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注