- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
将 Spring boot 的版本从 2.1.4 升级到 2.3.2 后,我的 apache2 无法再(通过 ajp)连接到我的 Spring boot 的嵌入式 tomcat。
它显示以下错误:
[proxy:error] [pid xxxx ] (111)Connection refused: AH00957: AJP: attempt to connect to 10.0.75.1:8500 (10.0.75.1) failed
[proxy_ajp:error] [pid xxxx ] [client xxx ] AH00896: failed to make connection to backend: 10.0.75.1, referer: http://myapp.develop/home/
我的开发环境是这样设置的:
<VirtualHost *:80>
ServerName myapp.develop
ProxyPass "/home" "http://10.0.75.1:4200/home"
ProxyPassReverse "/home" "http://10.0.75.1:4200/home"
ProxyPass "/backend" "ajp://10.0.75.1:8500/backend"
ProxyPassReverse "/backend" "ajp://10.0.75.1:8500/backend"
Connector connector = new Connector("AJP/1.3");
connector.setScheme("http");
connector.setPort(8500);
connector.setSecure(false);
connector.setAllowTrace(false);
((AbstractAjpProtocol) connector.getProtocolHandler()).setSecretRequired(false);
在 app.properties 中:
tomcat.ajp.port=8500
tomcat.ajp.remoteauthentication=false
tomcat.ajp.enabled=true
这是 tomcat 日志:
o.s.b.w.e.t.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 8500 (http)
o.a.c.h.Http11NioProtocol : Initializing ProtocolHandler ["http-nio-8080"]
o.a.c.a.AjpNioProtocol : Initializing ProtocolHandler ["ajp-nio-127.0.0.1-8500"]
o.a.c.c.StandardService : Starting service [Tomcat]
o.a.c.c.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.37]
我怀疑这种变化:
最佳答案
我在升级 tomcat 版本时遇到了类似的问题。将下面提到的属性添加到 ajp 连接器有助于我的情况。
connector.setProperty("address","0.0.0.0");
connector.setProperty("allowedRequestAttributesPattern",".*");
((AbstractAjpProtocol)connector.getProtocolHandler()).setSecretRequired(false);
详细说明:
In 8.5.51 onwards, the default listen address of the AJP Connector waschanged to the loopback address rather than all addresses.
connector.setProperty("address","0.0.0.0"); // OR connector.setProperty("address","::");
使用以下属性启用所有类型的请求属性(除非您有 header 信息,在这种情况下启用特定的)。具有无法识别的请求属性的请求将被拒绝并返回 403 响应:
connector.setProperty("allowedRequestAttributesPattern",".*");
使用“secretRequired”属性来定义是否需要与 HTTP 服务器交换 secret 以允许通过 ajp 的请求。如果是,则还要设置“secret”属性。否则请求将失败并显示 403。
((AbstractAjpProtocol)connector.getProtocolHandler()).setSecretRequired(false);
引用:
Apache Tomcat 8 Configuration Reference
Use of the AJP protocol requires additional security considerationsbecause it allows greater direct manipulation of Tomcat's internaldata structures than the HTTP connectors. Particular attention shouldbe paid to the values used for the address, secret, secretRequired andallowedRequestAttributesPattern attributes.
关于spring-boot - Apache 无法连接到新的 tomcat 9 ajp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63505670/
我们需要在我们的托管服务中托管一个 java richfaces/hibernate 应用程序。作为我们安全部门的要求,我们不能将该应用程序与我们的内部数据库建立任何连接。一个建议的解决方案是创建一个
我正在从 Jenkins 1.6.x 安装转移到 2.x。以下错误阻止 Jenkins 启动 Jul 02, 2016 12:51:42 PM org.eclipse.jetty.util.log.J
我需要在嵌入式 tomcat 中配置 AJP 连接器 https://tomcat.apache.org/tomcat-8.0-doc/config/ajp.html 相当于下面的配置: 怎么做?
我有一个应用程序,它使用 mod_proxy_ajp 配置了 apache 和 tomcat我们在 httpd.conf 中配置如下: # This is to redirect any reques
我正在使用带有 Apache 2.2.22 modproxy 的 Tomcat 7.0.29。 在 httpd.conf 中将 Ajp 配置为协议(protocol),在 server.xml 中配置
好吧,我在 wiki 上读过一篇小文章,对 AJP 做了一些解释。基本上该协议(protocol)用于 Apache 和应用程序服务器之间的通信。但为什么人们一开始就需要它呢?为什么不直接使用普通的
可通过 tomcat http 端口访问应用程序。从 Web 服务器(Apache http 服务器)访问时的应用程序会出现错误的网关错误。worker.properties(apache http
我们在与 ajp 连接器链接的 apache 网络服务器后面有一个 hybris 服务器。这是完美的,但是由于某种原因,在更新到 hybris 5.3(和 tomcat 7)之后,安全的 ajp 连接
我向我的 Spring Boot 2 项目添加了 AJP 连接器 @Bean public ServletWebServerFactory servletContainer() {
我们当前的生产网络环境使用: Web 服务器:Netscape iPlanet v4.1(别笑!) Servlet 容器:Tomcat 6.0.32 两者都在不同的服务器上运行 SunOS 5.9(S
我有这样的情况,我在 Windows 的同一台服务器上安装了多个 Tomcat。每个 Tomcat 都有自己的端口。第一个听8080 ajp 8009,第二个听8081 ajp 8010。 我的问题是
我正在尝试将 Apache WebServer (2.4.10) 连接到 Tomcat 7,两者都位于两个不同的虚拟机中。这是我第一次使用这些工具。据我了解,检查连接是否正常的方法是尝试使用 URL
我在 Apache 上使用 Kerberos + LDAP 进行身份验证。然后我创建了一个从 Apache 到 Tomcat 的 AJP。 由于 Apache 处理身份验证,有没有办法将远程用户安全地
我在 Windows 和 Tomcat 7 上使用 Apache 2.4。到目前为止,我一直在本地主机上测试所有内容。所以我本地的 Apache httpd.conf 有这个... Prox
我正在尝试运行 spring mvc 应用程序,但出现此错误 SEVERE [main] org.apache.coyote.AbstractProtocol.init Failed to initi
我有多个 grails 应用程序在 tomcat 服务器上运行,使用 ajp 协议(protocol)。在同一台服务器上,我将 apache 作为那些 tomcat 应用程序的前端运行。像这样的 ap
我在 Tomcat 8 上部署了一个公司应用程序,另一个应用程序向使用 AJP ` 协议(protocol)访问该应用程序的 Apache 服务器发出请求。我是 AJP 的新手。我已经使用带有上述应用
我在 JSF2 中有应用程序(使用 Primefaces)。我使用 h:outputStylesheet 将 url 解析为资源,因此指向我的 css 的链接如下所示: /project/javax.
我正在尝试配置我的 Apache 2.4 以连接到我的后端 Tomcat 8.0.28。在我的 Mac OS X El Capitan 中。 我使用了支持 AJP 的 NameBased Virtua
我们有一个非常默认的 apache2(2.2),mod_jk(1.2.30) 连接到同一个主机上的 tomcat(6),没有负载平衡器,只配置了 1 个 worker。 为了调试特定问题,我尝试增加
我是一名优秀的程序员,十分优秀!