Apache https 请求状态等待某些请求并返回 502 状态
Posted
技术标签:
【中文标题】Apache https 请求状态等待某些请求并返回 502 状态【英文标题】:Apache https request status pending for some requests and 502 status is returned 【发布时间】:2019-12-10 18:55:24 【问题描述】:我已经在 EC2 和 tomcat 上部署了服务器。我从 goDaddy 购买了域名。我正在使用带有 mod_ssl 的 HTTPD 进行 URL 重定向。当我尝试访问我的服务器时,某些请求处于挂起状态,但是当我刷新浏览器或重新提交请求时,数据会被加载。
我观察到只有一些请求失败,无论我使用的是 preworker 还是 worker。我已经监控了 tomcat 到 apache 的请求日志,但是 apache 请求没有被重定向到 tomcat 来处理这些请求。
这现在阻止了我的生产流量,因为用户无法顺利访问此应用程序。
我尝试通过 IP 访问该应用程序,但我没有遇到 502 的问题,但是当我在 https 上使用 DNS 使用它时,它会阻止一些请求并给出 502。
当前部署的服务- 1. 雄猫 2.索尔 3. mysql 4.阿帕奇
系统配置
内存 8 GB 交换 16 GB 核心 2系统上的活跃用户 - 100+
APACHE 配置 /etc/httpd/conf/httpd.conf
<IfModule mpm_worker_module>
KeepAlive on
StartServers 5
MinSpareThreads 15
MaxSpareThreads 100
ServerLimit 10
MaxRequestWorkers 200
MaxRequestsPerChild 4000
</IfModule>
/ssl.conf
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /mdt http://13.2XX.XXX.XX:9090/appName retry=1 acquire=3000 timeout=600 Keepalive=On
ProxyPassReverse /mdt http://13.2XX.XXX.XX:9090/appName
</VirtualHost>
Tomcat 配置-/conf/server.xml
<Connector port="9090" protocol="HTTP/1.1"
connectionTimeout="120000"
acceptCount="200"
maxThreads="3200"
minSpareThreads="80"
maxSpareThreads="160"
compression="on"
compressableMimeType="text/html,text/xml,text/plain"
redirectPort="8443"
/>
我还观察到 Apache 没有释放导致服务器崩溃的占用内存,我必须监控并在内存达到 90% 时重新启动 apache。
谁能帮帮我!!任何帮助将不胜感激
【问题讨论】:
Tomcat 提交者在这里。是否有任何令人信服的理由使用 HTTPd? Tomcat 也将完美地执行 OpenSSL。 @Michael-O 是的。我正在使用同样部署在同一台服务器上的 react 应用和 wordpress 网站。 【参考方案1】:我在 apache virtualhost 中添加了下面的配置来解决这个问题。
< VirtualHost XXXX>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /mdt http://13.2XX.XXX.XX:9090/appName retry=1 acquire=3000 timeout=600 Keepalive=On
ProxyPassReverse /mdt http://13.2XX.XXX.XX:9090/appName
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</VirtualHost>
【讨论】:
以上是关于Apache https 请求状态等待某些请求并返回 502 状态的主要内容,如果未能解决你的问题,请参考以下文章