我已经在 EC2 和 tomcat 上部署了服务器。我已经从 goDaddy 购买了域名。我将 HTTPD 与 mod_ssl 一起用于 URL 重定向。当我尝试访问我的服务器时,一些请求处于挂起状态,但是当我刷新浏览器或重新提交请求时,数据被加载。
无论我使用 preworker 还是 worker,我都观察到只有一些请求失败了。我已监控 tomcat 到 apache 请求日志,但 apache 请求不会针对这些请求重定向到 tomcat。
这现在阻塞了我的生产流量,因为用户无法顺利访问此应用程序。
我已尝试通过 IP 访问该应用程序,但我没有遇到 502 的问题,但是当我在 https 上使用 DNS 使用它时,它会阻止一些请求并提供 502。
当前部署的服务- 1. Tomcat 2.太阳能 3.mysql 4. Apache
系统配置
- 内存 8 GB
- 交换 16 GB
- 核心 2
系统上的活跃用户 - 100+
APACHE Config /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 Config- /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。
谁能帮帮我!!任何帮助将不胜感激
最佳答案
我在 apache 虚拟主机中添加了以下配置来解决这个问题。
< 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 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57321513/