我尝试使用谷歌搜索,发现比较这两者的唯一文章是从 2005 年到 2002 年。我刚刚设置了我的第一个 Tomcat 实例来为我正在做的项目运行 Jira。我想通过端口 80 和 apache 代理它。据我所知,我可以使用 mod_proxy 轻松转发流量。使用 mod_jk 有什么区别?这两个模组之间是否有任何性能/安全差异?有人有任何通过 apache 设置转发的提示/经验吗?我正在运行 debian Lenny。
我尝试使用谷歌搜索,发现比较这两者的唯一文章是从 2005 年到 2002 年。我刚刚设置了我的第一个 Tomcat 实例来为我正在做的项目运行 Jira。我想通过端口 80 和 apache 代理它。据我所知,我可以使用 mod_proxy 轻松转发流量。使用 mod_jk 有什么区别?这两个模组之间是否有任何性能/安全差异?有人有任何通过 apache 设置转发的提示/经验吗?我正在运行 debian Lenny。
这两种方法都将请求从 apache 转发到 tomcat。mod_proxy 使用我们都知道的一种喜爱的 HTTP。mod_jk 使用二进制协议 AJP。mod_jk 的主要优点是:
一个轻微的缺点是 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。
是的,有一些区别。但是,您选择使用哪个取决于您的应用程序。
例如,mod_proxy将充当普通反向代理,仅转发常规标头,而mod_jk将充当特殊连接器,不仅转发常规标头,还转发某些其他环境变量。scgi和fastcgi连接器可以类比。
为了使用 JSP,您应该使用它所设计的mod_jk 。仅在转发到常规 Web 服务器时才使用mod_proxy(可能会在它们后面启动其他ajp连接器)。
希望这可以帮助。
mod_proxy 将使用普通的 http 连接器真正“代理”所有对 tomcat 的请求。
mod_jk 打开与tomcat 服务器的“ajp13”连接,这些连接与普通的tomcat http 连接器分开,并以这种方式传递流量。
除非您使用
mod_proxy_http
. 推荐的配置是这样的/etc/httpd/vhosts.d/jira.company.com.conf
/opt/j2ee/domains/company.com/jira/tomcat/conf/server.xml
这应该让你继续
http
,如果你想要一个例子,请告诉我https
免责声明:我目前是 Atlassian 员工,虽然我不在 JIRA 团队工作