标签: ajp

Apache+Tomcat 通信出现问题。不明确的错误信息。关闭托管在 Tomcat 下的网站

设置:
Fedora 8
Apache 2.2.8
Tomcat 5.5.8
Apache 使用 AJP 转发请求。

问题:
经过一段时间后(根本没有常数,可能在一两个小时之间,或者一天或几天之间)Tomcat 将关闭。它要么停止响应,要么提供通用的“服务暂时不可用”。

诊断:
有两台服务器的设置相同。一个是流量较高的网站(每秒几个请求),另一个是低流量网站(每隔几分钟就有几个请求)。这两个网站是完全不同的代码库,但它们表现出相似的问题。

在第一台服务器上,当问题发生时,所有线程都开始慢慢被占用,直到达到限制(MaxThreads 200)。那时服务器不再响应(并且在很长一段时间后出现服务不可用页面)。

在第二台服务器上,出现问题时,请求需要很长时间,完成后您只能看到服务不可用页面。

除了提到 MaxThreads 问题之外,Tomcat 日志没有指出可能导致此问题的任何特定问题。

但是,在 Apache 日志中,我们看到了涉及 AJP 的随机消息。这是我们看到的随机消息示例(无特定顺序):

[error] (70007)The timeout specified has expired: ajp_ilink_receive() can't receive header
[error] (104)Connection reset by peer: ajp_ilink_receive() can't receive header
[error] proxy: AJP: disabled connection for (localhost)
[error] ajp_read_header: ajp_ilink_receive failed
[error] (120006)APR does not understand this error code: proxy: read response failed from 127.0.0.1:8009 (localhost)
[error] ap_proxy_connect_backend disabling worker for (localhost)
Run Code Online (Sandbox Code Playgroud)

我们在更高流量的服务器上注意到的另一件奇怪的事情是,就在问题开始发生之前,数据库查询所用的时间比以前长得多(2000-5000 …

tomcat ajp apache-2.2

22
推荐指数
3
解决办法
8万
查看次数

如何让 Tomcat AJP-Connectors 工作?

我想使用连接器通过 Apache-webserver 访问 Tomcat。我坚持使用文档:http : //tomcat.apache.org/connectors-doc/generic_howto/quick.html 我只是稍微修改了它以匹配我的 Debian-(Squeeze)-System 上使用的目录结构。

所以我在/etc/apache2/httpd.conf中添加了以下内容:

# Load mod_jk module
# Update this path to match your modules location
#LoadModule    jk_module  libexec/mod_jk.so
# Declare the module for <IfModule directive> (remove this line on Apache 2.x)
#AddModule     mod_jk.c
# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
JkWorkersFile /etc/apache2/workers.properties
# Where to put jk shared memory
# Update this path to match your local state …
Run Code Online (Sandbox Code Playgroud)

tomcat ajp apache-2.2

10
推荐指数
1
解决办法
3万
查看次数

无法加载资源:net::ERR_CONNECTION_RESET

自从我开始在反向代理(Apache2 的 mod_jk)后面使用应用程序后,我注意到有些页面无法加载(如果没有反向代理设置,它们会加载)。

这是一个微妙的错误,我必须检查才能找到它,这要归功于谷歌浏览器:无法加载资源:net::ERR_CONNECTION_RESET

简单地说,一个 JavaScript 文件将被部分加载(从 ~50KB 中加载了 ~12KB)。

我认为 Apache2、mod_jk、AJP 或 Jetty 有问题。

但后来我进行了一项调查,在那里我将使用不同的浏览器和不同的网络。

结论: 此错误 (ERR_CONNECTION_RESET) 仅在我使用具有静态IP 的网络时发生。

我在一台路由器上降低了安全级别,但徒劳无功。

具有静态 IP 的网络是否配备了更高级别的安全性?

如何克服这个问题?

这是一个僵局,因为反向代理主要是为了利用我们卖点的静态 IP 地址来提高安全级别。

reverse-proxy ajp static-ip mod-jk apache-2.4

10
推荐指数
2
解决办法
7万
查看次数

mod_proxy vs mod_proxy_ajp vs mod_jk

我们正在准备从以下环境迁移:

Apache 2.0.2 --AJP--> JBoss4.2.2

Apache 2.2.3 --???--> JBoss 5.1.0

你会如何将两者结合在一起?

选项是:

  1. 经典 AJP(意味着为 Apache 构建 mod_jk)
  2. mod_proxy(将 HTTP 请求转发到 JBoss)
  3. mod_proxy_ajp

选项 2 是目前最流行的解决方案,因为它似乎意味着更少的处理,因为不再需要从 AJP 转换 JBoss 的响应,并且 CPU 时间是我们需要在我们的基础设施中密切关注的东西。选项 2 和 3 也随 Red Hat 支持的 Apache 构建一起提供。

目前我看不到我们选择选项 1,因为我们通过选项 3“免费”获得 AJP。

因此,选项 2 和选项 3 的优缺点是什么?对 CPU 负载的担忧真的是我们需要担心的吗?我们在处理二进制数据(AJP 流量)过程中丢失的东西是否会在减少的带宽和 IO 中得到恢复?

我们的基础设施将是 Apache ,在同一台 RHEL 5 机器上运行多达9 个经过大量调优的 JBoss(但通常占一半左右),该机器在私有云中虚拟化。

提前感谢您的任何指示/建议。

富有的

ajp apache-2.2

9
推荐指数
1
解决办法
1万
查看次数

增加 mod_proxy_ajp 连接的超时时间

我的 apache (2.2.3) 通过 mod_proxy_ajp 与 tomcat 6.something 对话。

我有一些荒谬的长期请求(2-6 分钟),我认为我们在某个地方遇到了一些默认超时......哪里是提高它的正确位置?

这是我的代理定义:

<Location /blah>
  ProxyPass ajp://localhost:8010/blah
  ProxyPassReverse ajp://localhost:8010/blah
</Location>
Run Code Online (Sandbox Code Playgroud)

tomcat proxy ajp mod-proxy-ajp apache-2.2

7
推荐指数
2
解决办法
2万
查看次数

如何重新激活禁用的 Apache 2.2 AJP 连接?

我不使用 AJP 进行负载平衡;我有一个单一的Apache 2.2实例代理某些URL的单一通过AJP的Tomcat 7的实例。

当 Tomcat 关闭时,AJP 代理在第一个失败的请求时被禁用,并且在 Tomcat 恢复时不会重新启用。

是否可以指示 Apache不禁AJP 连接,即使后端已关闭,以便代理在后端重新联机时开始工作?

这是我的 httpd.conf 的摘录:

ProxyPass /my-web-app ajp://localhost:8009/my-we-app-1.0.2
Run Code Online (Sandbox Code Playgroud)

这是后端关闭时的日志文件:

[error] (OS 10061)No connection could be made because the target machine actively refused it.
[error] ap_proxy_connect_backend disabling worker for (localhost)
[error] proxy: AJP: failed to make connection to backend: localhost
Run Code Online (Sandbox Code Playgroud)

tomcat ajp mod-proxy-ajp apache-2.2

6
推荐指数
1
解决办法
2万
查看次数

如何在 Apache 和 Tomcat 中设置使用 mod_proxy_ajp?

我想在 RHEL 5 服务器上运行 Apache 和 Tomcat,Apache 处理 Ruby on Rails 应用程序(通过 mod_rails/Passenger)和 Tomcat 处理 Java 应用程序。

在 Apache 下,每个 Rails 应用程序都有一个 URL 和 vhost。这些 URL 已经在我们的 DNS 服务器中配置为指向机器。

在Tomcat,每个Java应用程序都有这样的网址:ourserver.ourcompany.com/app1ourserver.ourcompany.com/app2,等。

服务器已经启动并运行,Tomcat 6 在端口 80 上运行并为多个 Java 应用程序提供服务。我想添加Apache并重新配置。我熟悉如何配置唯一的 Apache 服务器以使用 Passenger 托管 RoR 应用程序。我只是不知道如何让 Apache 和 Tomcat 像这样一起工作。

我通过谷歌搜索找到了各种资源和讨论(例如,这个),但它们往往有点粗略和不完整,或者它们似乎与我想要做的并不真正匹配。我链接到的那个似乎是为了将所有请求发送到 Tomcat,而不仅仅是某些请求并让 Apache 处理其他请求。

有人可以为server.xmland推荐一个示例配置httpd.conf,或者给我一些更详细的资源吗?

tomcat reverse-proxy ajp apache-2.2

5
推荐指数
1
解决办法
1万
查看次数

在 Apache 和 Tomcat 之间设置 AJP 机密

我在 Apache (2.4.41) 和 Tomcat (7.0.99) 之间设置机密时遇到问题。我想我在 Tomcat (server.xml) 中正确设置了它:

<Connector ... secretRequired="true" secret="123" />
Run Code Online (Sandbox Code Playgroud)

当我尝试设置 Apache 端 (httpd-ajp.conf) 时:

ProxyPass / ajp://127.0.0.1:8009/ secret="123"
Run Code Online (Sandbox Code Playgroud)

Apache 无法启动,Apache 错误日志显示:

AH00896: failed to make connection to backend: 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

AH00957: AJP: attempt to connect to 127.0.0.1:8009
Run Code Online (Sandbox Code Playgroud)

如果它有任何区别,我正在使用 XAMPP for Windows 7.3.13

tomcat ajp apache-2.4

5
推荐指数
1
解决办法
2万
查看次数

在 Tomcat 7.0.100 和 Apache server 2.4 中使用“secret”和 AJP 时出现错误 403

由于错误 CVE-2020-1938,我们想使用最新的 Tomcat 7.0.100。另请参阅CVE-2020-1938 我们还使用 2.4 版的 Apache 服务器,它通过 AJP 连接到 Tomcat。

最新的 Tomcat 版本需要各种新的安全通信设置,这是我们所做的。不幸的是,我们总是收到 HTTP 错误 403 并且不知道为什么。

在 Apache workers.properties 中,我们有以下设置:

worker.list=okkommwm57f
ps=\
worker.okkommwm57f.type=ajp13
worker.okkommwm57f.host=192.168.181.240
worker.okkommwm57f.secret=123456
worker.okkommwm57f.port=8309
worker.okkommwm57f.socket_keepalive=1
worker.okkommwm57f.connect_timeout=10000  
worker.okkommwm57f.prepost_timeout=10000
worker.okkommwm57f.socket_timeout=10
worker.okkommwm57f.connection_pool_timeout=600
Run Code Online (Sandbox Code Playgroud)

AJP 连接器配置如下所示:

<Connector port="8309" protocol="AJP/1.3" redirectPort="8443" secretRequired="true" secret="123456" address="192.168.181.240" />
Run Code Online (Sandbox Code Playgroud)

当我测试站点时,我不断收到 HTTP 错误 403。我尝试了不同的版本,但都无济于事。已经将“secretRequired”设置为“false”。也不行。

也许有人有想法,可以帮我解决问题。谢谢你。

ajp tomcat7 apache-2.4

3
推荐指数
1
解决办法
4603
查看次数

用于负载平衡的 Apache / Lighttpd

您如何看待用于 AJP 负载平衡的 lighttpd?

我为此使用了 Apache 和 mod_jk,它工作正常。将 apache 切换到 lighttpd 有什么好处?

什么软件用于负载平衡 J2EE 应用程序?硬件负载均衡器?

谢谢!

load-balancing lighttpd ajp apache-2.2

2
推荐指数
1
解决办法
3883
查看次数