• Apache mod_proxy_ajp链接Tomcat


    介绍

    作为Tomcat安装和自动启动设置的延续,我总结了将Apache端收到的HTTP请求抛给Tomcat的设置。

    使用环境

      • CentOS 7.7(1908)
    • Java(亚马逊正确)
      • Java 1.8.0_242
    • 阿帕奇
      • Apache-2.4.6
    • 雄猫
      • Tomcat-9.0.30

    安装 Apache

    • 使用 yum 命令安装后,显示版本信息以确认安装正确。
    1. [root@akagi ~]# yum install -y httpd
    2. [root@akagi ~]# httpd -v
    3. Server version: Apache/2.4.6 (CentOS)
    4. Server built: Aug 8 2019 11:41:18

    配置 Apache 自动启动

    • 使用 systemctl enable... 设置自动启动,然后检查自动启动设置。
    1. [root@akagi ~]# systemctl enable httpd
    2. Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
    3. [root@akagi ~]# systemctl list-unit-files -t service | grep httpd
    4. httpd.service enabled

    编辑配置文件

    • 在这里,编辑 httpd.conf 并配置设置以使用反向代理将请求从 Apache 发送到 Tomcat。

    检查 /etc/httpd/conf.modules.d/00-proxy.conf

    • /etc/httpd/conf.modules.d/00-proxy.conf描述了用于反向代理的模块的配置。
    • mod_proxy.so并且mod_proxy_ajp.so没有被注释掉。
      • 如果该行开始#,它将成为注释行。
    • mod_proxy_ajp允许您使用称为 AJP 的协议与 Tomcat 通信,该协议比 HTTP 更有效。
      • 我想我很早以前就在使用一个名为 Ya 的模块,但是我使用的模块在我知道之前就改变mod_jk了......mod_jk2
    00-proxy.conf
    1. # This file configures all the proxy modules:
    2. LoadModule proxy_module modules/mod_proxy.so
    3. ...
    4. LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    5. ...

    备份 httpd.conf

    • 在编辑 httpd.conf 之前,请备份 httpd.conf 的原始状态。
    1. [root@akagi ~]# cd /etc/httpd/conf/
    2. [root@akagi conf]# cp -a httpd.conf httpd.conf.org

    反向代理设置

    • 如下设置 ProxyPass 和 ProxyPassReverse。
      • ProxyPass {リクエストパス} ajp://localhost:8009/{Javaアプリのコンテキスト名}
      • ProxyPassReverse {リクエストパス} ajp://localhost:8009/{Javaアプリのコンテキスト名}
    • ProxyPass和ProxyPassReverse都有“将请求路径中进来的请求转发到应用服务器(这里是*Tomcat)”的作用,但是如果使用redirect,则需要设置ProxyPassReverse。
    /etc/httpd/conf/httpd.conf
    1. # 以下をファイルの末尾に追記
    2. ProxyPass /tomcat9/ ajp://localhost:8009/
    3. ProxyPassReverse /tomcat9/ ajp://localhost:8009/
    • 例如,当使用上下文名称为运行在 Tomcat 上的应用程序设置反向代理时,test设置如下。
      • tomcat9您可以将其替换为任何字符串。
    /etc/httpd/conf/httpd.conf
    1. # 以下をファイルの末尾に追記
    2. ProxyPass /tomcat9/ ajp://localhost:8009/test/
    3. ProxyPassReverse /tomcat9/ ajp://localhost:8009/test/

    应用设置

    • 在 CentOS5 系列和 CentOS6 系列上,service httpd graceful我没有强制重启 Apache,只是反映了设置值,但graceful不能与 CentOS7 系列 Apache 一起使用。
    • 根据这篇文章,运行with 可以得到和reload之前一样的效果。systemctl reload httpdgraceful
    [root@akagi ~]# systemctl reload httpd
    

    操作确认

    • 最后,http://{サーバーのIP}/tomcat9/去确认可以看到Tomcat管理界面。

    相关工作

  • 相关阅读:
    Skywalking系列学习之Trace Profiling源码分析
    Self-adaptive Differential Evolution Algorithm for Numerical Optimization
    KO之间互相调用
    Cy3菁染料标记海藻酸钠;CY3-Alginate;Alginate-CY3
    动态数组写模板类
    csdn怎么提问问题?
    NNDL 作业11:优化算法比较
    Java刷题day26
    Ubuntu安装桌面环境以及远程桌面连接
    分享68个毕业答辩PPT,总有一款适合您
  • 原文地址:https://blog.csdn.net/allway2/article/details/126264528