当前位置: 首页 > 知识库问答 >
问题:

AJP连接器和Tomcat之间的网关Time_out问题8.5.54

朱明知
2023-03-14

我在debian 9.12(拉伸)系统上有一个由Apache 2(2.4.25)前端的tomcat 8服务器,我在apache2和tomcat之间使用ajp连接器。JDK版本是Oracle JDK 1.8。0_252-8u252-b09-1~Deb9u1-b09。在tomcat8自动更新到8.5.54之前,一切都很好。但是现在通过ajp访问应用程序时出现504超时网关错误。

tomcat8服务器今天早上自动更新

Start-Date: 2020-05-05  06:01:41
Commandline: /usr/bin/unattended-upgrade
Upgrade: libservlet3.1-java:amd64 (8.5.50-0+deb9u1, 8.5.54-0+deb9u1),
libtomcat8-java:amd64 (8.5.50-0+deb9u1, 8.5.54-0+deb9u1),
tomcat8-examples:amd64 (8.5.50-0+deb9u1, 8.5.54-0+deb9u1),
tomcat8-admin:amd64 (8.5.50-0+deb9u1, 8.5.54-0+deb9u1),
tomcat8-common:amd64 (8.5.50-0+deb9u1, 8.5.54-0+deb9u1), tomcat8:amd64
(8.5.50-0+deb9u1, 8.5.54-0+deb9u1), tomcat8-docs:amd64 (8.5.50-0+deb9u1,
8.5.54-0+deb9u1)
End-Date: 2020-05-05  06:01:52

apache2和tomcat8配置文件中没有任何变化。我仍然可以访问tomcat管理器界面,并且可以看到我的应用程序正在运行。我可以使用localhost访问tomcat应用程序,但不能通过apache2服务器。

例如,我在tomcat8服务器上部署了应用程序QCM1。如果执行以下命令

wget http://localhost:8080/QCM1

回答是正确的,但当我执行

wget http://myserve.mydomain.fr/QCM1

有504网关超时错误

为了能够将HTTP请求重定向到tomcat服务器,apache2配置文件中有以下指令(该指令在tomcat8更新之前就已生效)

ProxyPass /QCM1 ajp://localhost:8009/QCM1

我错过了什么?谢谢你的帮助。

共有1个答案

贺波
2023-03-14

最后,我找到了一个解决方案,错误的堆栈跟踪是:

05-May-2020 16:29:01.292 GRAVE [main]
org.apache.catalina.core.StandardService.startInternal Failed to start connector [Connector[AJP/1.3-8009]]
org.apache.catalina.LifecycleException: Le démarrage du gestionnaire de protocole a échoué 
at org.apache.catalina.connector.Connector.startInternal(Connector.java:1086)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:440)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:766)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:688)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:343)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)

解决此问题的一个解决方案是在server.xml文件中更改AJP连接器的配置,并添加秘密所需的属性,正如Jainender Chauhan在他对Springboot-AJP连接器的响应中建议的那样,配置为秘密所需=“true”,但升级到2.2.5后,秘密属性要么为空,要么为“”

<Connector protocol="AJP/1.3" port="8009" redirectPort="8443" secretRequired="false" />

效果很好但我不确定这是最好最安全的方法

 类似资料:
  • Spark 组件之间的网络连接问题会导致各式各样的警告/错误: SparkContext <-> Spark Standalone Master: 如果 SparkContext 不能连接到 Spark standalone master,会显示下面的错误 ERROR AppClient$ClientActor: All masters are unresponsive! Giving up. E

  • 我们的系统使用“mod\u proxy\u ajp”,与Apache 2.0、httpd-2.2.3-43配合使用。el5,tomcat 7.0。当我们在“httpd”上获得日志时,我们有以下日志: [Sun Oct05 12:14:10 2014][错误](70007)指定的超时已过期:ajp_ilink_receive()无法接收标头 [2014年10月5日星期日12:14:10][错误]aj

  • 在将Spring Boot的版本从2.1.4升级到2.3.2之后,我的apache2再也无法(通过ajp)连接到Spring Boot的嵌入式tomcat。 它显示了以下错误: 设置为将请求重定向到两个应用程序的前置apache2服务器(在docker容器上): 我通过我的/etc/hosts:myapp.development上的域名访问我的web应用程序 这是我的spring boot Tom

  • 我已经安装了Java EE Eclipse Kepler和Apache Tomcat v9.0.2。当我想将tomcat v9.0.2连接到eclipse时,我只在新的服务器窗口中看到Tomcat v3.2 up tp v7.0 Server。如何让Tomcat V.9显示在向导窗口中?

  • 我创建了2个Docker图像。一个是tomcat,另一个是Apache。我可以让它们单独运行,但我试图通过AJP将apache代理到tomcat 目前我得到以下信息: [Thu 3月17日15:49:43.373689 2016年][代理:错误][pid 11:TID 140213099689728](111)连接被拒绝:AH00957:AJP:试图连接到127.0.0.1:8009(本地主机)失

  • 我的目的是连接http pd web服务器和eclipse tomcat应用程序服务器。我配置了Tomcat服务器,在server.xml插入以下行: 我将 mod_jk.so 文件复制到 httpd modules 文件夹中,在 conf 文件夹中创建了 workers.properties 文件,其中包含以下行: 我在httpd.conf文件中添加了以下几行: 我同时启动了Tomcat和Htt