AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 73314
Accepted
brad
brad
Asked: 2009-10-11 16:42:37 +0800 CST2009-10-11 16:42:37 +0800 CST 2009-10-11 16:42:37 +0800 CST

mod_jk 或 mod_proxy

  • 772

我尝试使用谷歌搜索,发现比较这两者的唯一文章是从 2005 年到 2002 年。我刚刚设置了我的第一个 Tomcat 实例来为我正在做的项目运行 Jira。我想通过端口 80 和 apache 代理它。据我所知,我可以使用 mod_proxy 轻松转发流量。使用 mod_jk 有什么区别?这两个模组之间是否有任何性能/安全差异?有人有任何通过 apache 设置转发的提示/经验吗?我正在运行 debian Lenny。

debian
  • 4 4 个回答
  • 3134 Views

4 个回答

  • Voted
  1. David Pashley
    2009-10-12T00:00:55+08:002009-10-12T00:00:55+08:00

    这两种方法都将请求从 apache 转发到 tomcat。mod_proxy 使用我们都知道的一种喜爱的 HTTP。mod_jk 使用二进制协议 AJP。mod_jk 的主要优点是:

    • AJP 是一个二进制协议,因此与 HTTP 相比,两端处理速度稍快,开销也稍少,但这是最小的。
    • AJP 包括原始主机名、远程主机和 SSL 连接等信息。这意味着 ServletRequest.isSecure() 可以按预期工作,并且您知道谁在连接到您并允许您在代码中进行某种虚拟主机。

    一个轻微的缺点是 AJP 基于固定大小的块,并且可能会因长标题而中断,特别是请求具有长参数列表的 URL,但您应该很少处于具有 8K 的 URL 参数的位置。(这表明你做错了。:))

    由于 mod_proxy_ajp 的存在,位置稍微复杂了一些。在它们之间,mod_jk 是两者中更成熟的,但 mod_proxy_ajp 与其他 mod_proxy 模块在相同的框架中工作。我还没有使用 mod_proxy_ajp,但将来会考虑这样做,因为 mod_jk 涉及 Apache 之外的配置。

    如果可以选择,我更喜欢基于 AJP 的连接器,这主要是由于我的第二个优势,而不是性能方面。当然,如果 Atlassian 不支持 mod_proxy_http 以外的任何东西,那确实有点束缚你的手,但 mod_jk 确实适用于 JIRA。

    • 8
  2. sybreon
    2009-10-11T19:20:26+08:002009-10-11T19:20:26+08:00

    是的,有一些区别。但是,您选择使用哪个取决于您的应用程序。

    例如,mod_proxy将充当普通反向代理,仅转发常规标头,而mod_jk将充当特殊连接器,不仅转发常规标头,还转发某些其他环境变量。scgi和fastcgi连接器可以类比。

    为了使用 JSP,您应该使用它所设计的mod_jk 。仅在转发到常规 Web 服务器时才使用mod_proxy(可能会在它们后面启动其他ajp连接器)。

    [front apache]---proxy---[back apache]---ajp---[tomcat]
           |
           +--------- ajp----[tomcat]
    

    希望这可以帮助。

    • 3
  3. emills
    2009-10-11T17:56:54+08:002009-10-11T17:56:54+08:00

    mod_proxy 将使用普通的 http 连接器真正“代理”所有对 tomcat 的请求。

    mod_jk 打开与tomcat 服务器的“ajp13”连接,这些连接与普通的tomcat http 连接器分开,并以这种方式传递流量。

    • 2
  4. Best Answer
    Dave Cheney
    2009-10-11T21:41:43+08:002009-10-11T21:41:43+08:00

    除非您使用mod_proxy_http. 推荐的配置是这样的

    /etc/httpd/vhosts.d/jira.company.com.conf

    ...
    ProxyPreserveHost On
    <Location />
       ProxyPass http://localhost:8080/
    </Location>
    ...
    

    /opt/j2ee/domains/company.com/jira/tomcat/conf/server.xml

    ...
    <Connector address="localhost" port="8080" URIEncoding="UTF-8"
       maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
       enableLookups="false" redirectPort="8443" acceptCount="100"
       debug="0" connectionTimeout="20000"
       proxyName="jira.company.com" proxyPort="80"
       disableUploadTimeout="true" /> 
    ...
    

    这应该让你继续http,如果你想要一个例子,请告诉我https

    免责声明:我目前是 Atlassian 员工,虽然我不在 JIRA 团队工作

    • 2

相关问题

  • 关闭 FTP

  • 如何在同一台电脑上从 putty 连接 debian vmware

  • debian- 文件到包的映射

  • Debian Ubuntu 网络管理器错误 [关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve