无法延长 AWS 中 beanstalk 的超时时间

Posted

技术标签:

【中文标题】无法延长 AWS 中 beanstalk 的超时时间【英文标题】:Not able to extend timeout for beanstalk in AWS 【发布时间】:2020-06-28 17:19:49 【问题描述】:

我需要在 aws 中延长我的 beanstalk 的超时时间,我在负载均衡器中增加了超时时间,但我仍然面临 502 错误。所以我尝试在提供文件的.ebextensions 文件夹中添加httpd confing

# Managed by Elastic Beanstalk
PidFile run/httpd.pid

# Enable TCP keepclive
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 300

<IfModule worker.c>
StartServers        10
MinSpareThreads     250
MaxSpareThreads     250
ServerLimit         10
MaxClients          250
MaxRequestsPerChild 1000000
</IfModule>

Listen 80

Include conf.d/*.conf
Include conf.d/elasticbeanstalk/*.conf

User apache
Group apache

CustomLog logs/access_log "%h %l %u %t \"%r\" %>s %b \"%Refereri\" \"%User-Agenti\""
TraceEnable off

LoadModule alias_module modules/mod_alias.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so

当我尝试在 beanstalk 上部署它时,我开始遇到错误:

[实例:i-0c436613676c84739] 实例上的命令失败。返回代码:1 输出:(截断)...pd.conf AH00534:httpd:配置错误:未加载 MPM。执行失败'/usr/sbin/apachectl -t -f /var/elasticbeanstalk/staging/httpd/conf/httpd.conf' 执行失败'/usr/sbin/apachectl -t -f /var/elasticbeanstalk/staging/ httpd/conf/httpd.conf'。挂钩 /opt/elasticbeanstalk/hooks/appdeploy/pre/03_configure_proxy.sh 失败。有关更多详细信息,请使用控制台或 EB CLI 检查 /var/log/eb-activity.log。

我尝试在 httpd.conf 文件中添加 npm 模块,但这样做我面临其他问题并且它永远不会结束。 此文件是否需要更正?

【问题讨论】:

【参考方案1】:

无论出于何种原因,该 EC2/beanstalk 映像缺少此文件:

/etc/httpd/conf.modules.d/00-mpm.conf

只需使用以下文本创建它:

# Select the MPM module which should be used by uncommenting exactly
# one of the following LoadModule lines.

# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.apache.org/docs/2.4/mod/prefork.html
#
# NOTE: If enabling prefork, the httpd_graceful_shutdown SELinux
# boolean should be enabled, to allow graceful stop/shutdown.
#
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

# worker MPM: Multi-Processing Module implementing a hybrid
# multi-threaded multi-process web server
# See: http://httpd.apache.org/docs/2.4/mod/worker.html
#
#LoadModule mpm_worker_module modules/mod_mpm_worker.so

# event MPM: A variant of the worker MPM with the goal of consuming
# threads only for connections with active processing
# See: http://httpd.apache.org/docs/2.4/mod/event.html
#
#LoadModule mpm_event_module modules/mod_mpm_event.so

然后运行sudo systemctl restart httpd

【讨论】:

以上是关于无法延长 AWS 中 beanstalk 的超时时间的主要内容,如果未能解决你的问题,请参考以下文章

无法在 AWS 中使用 RDS 创建弹性 Beanstalk 环境

AWS Elastic Beanstalk 无法担任角色

AWS Lambda超时时获取通知

Amazon Elastic BeanStalk 错误:无法创建 AWS Elastic Beanstalk 应用程序版本

AWS - Elastic BeansTalk:[错误] 'php' 未找到或无法统计

超时后无法部署到 AWS Elastic Beanstalk