我已经在Ubuntu版本18服务器上安装了Spring Boot应用程序。我使用apache2并让其加密以使用SSL保护应用程序。该应用程序可以在95%的环境下正常运行,有时在客户端会出现HTTP 503错误(浏览器调试视图)如果HTTP 503出现在浏览器/客户端上,则也会在apache2日志文件中进行输入,如下所示:
[Thu Mar 26 00:10:52.731383 2020] [proxy_ajp:error] [pid 16266:tid 139926293157632] [client
xxxx.xxxx.3.59:60869] AH00893: dialog to 127.0.0.1:9090 (localhost) failed, referer:
https domain
[Thu Mar 26 00:10:57.802571 2020] [proxy_ajp:error] [pid 16266:tid 139926720988928]
(70014)End of file found: AH01030: ajp_ilink_receive() can't receive header
[Thu Mar 26 00:10:57.802597 2020] [proxy_ajp:error] [pid 16266:tid 139926720988928] [client
xxx.xxx.3.59:60875] AH00992: ajp_read_header: ajp_ilink_receive failed, referer:
https domain
[Thu Mar 26 00:10:57.802628 2020] [proxy_ajp:error] [pid 16266:tid 139926720988928]
(120006)APR does not understand this error code: [client xxx.xxx.3.59:60875] AH00878: read
response failed from 127.0.0.1:9090 (localhost), referer: https domain
我找到了这个线程:
We did some more investigation and found that the Apache setting that enables packets > 8192
(ProxyIOBufferSize 65536) was not going into effect because it was wrapped in an <IfModule
... > condition. (The module is loaded but we are investigating why the condition isn't
satisfied.) Tomcat 8.5 worked because it never sent packets larger than 8192, even though it
was allowed to, Tomcat 9 is sending bigger packets as it is configured to. With
ProxyIOBufferSize outside of the conditional, it is now working as expected.
我现在的问题是ProxyIOBufferSize的大小是否可能很小,以及如何在apache2配置文件中调整ProxyIOBufferSize。
您可以更改Module mod_proxy的ProxyIOBufferSize指令ref:https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#page-header