AWS Elastic Beanstalk 504 网关超时

2024-03-09

我有一个在 AWS Elastic Beanstalk 上运行的节点服务器。我的一个端点接受巨大的有效负载,并且该函数本身相当缓慢且冗长,可能需要长达 10 多分钟的时间。

由于业务需求,它必须保留为单个 HTTP POST,并且不能拆分得更小。

在较大的呼叫中,我收到 504 GATEWAY TIMEOUT,始终在 60 秒左右。我尝试过调整 Elastic Beanstalk 负载均衡器部分中的超时设置,但无济于事,看来最长的超时持续时间是 60 秒。

我确实在文档中看到了一个有前途的解决方案https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html

为确保文件上传等冗长操作有时间完成,请在每个空闲超时时间过去之前至少发送 1 个字节的数据

这听起来正是我所需要的,但我不知道如何实现

1)如何从我的 Node 应用程序“发送至少 1 个字节的数据”以确保会话保持活动状态并且在一分钟后不会超时


ElasticBeanstalk 环境中的 504 超时可以通过设置 ELB 策略来解决。可能还需要更新 Nginx 超时配置。

  • ELB 策略:将弹性负载均衡器的空闲超时设置为您选择的值(默认为 60 秒)。为此,请创建一个.eb扩展名项目根目录中的文件夹。在此文件夹中创建另一个文件.config文件扩展名,并将 ELB 空闲超时设置为您选择的值(例如 300 秒):

     option_settings:
       - namespace: aws:elb:policies
         option_name: ConnectionSettingIdleTimeout
         value: 300
    

    或者,如果您使用应用程序负载均衡器:

     option_settings:
       - namespace: aws:elbv2:loadbalancer
         option_name: IdleTimeout
         value: 300
    
  • Nginx 配置:将 Nginx 设置为所需的超时值:send_timeout, proxy_connect_timeout, proxy_read_timeout, proxy_Send_timeout全部默认为 60 秒(要检查的附加规范可能是:client_header_timeout, client_body_timeout, keepalive_timeout)。 Nginx 中的默认超时值在规格 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-nginx.html和配置文件(例如.config文件下/etc/nginx)。在里面.ebextensions文件夹创建一个新文件(例如01-nginx-configuration.config或在上面的.config文件中更新),并在文件中附加以下内容(根据观察到的超时情况添加或删除相关设置):

     files:
       "/etc/nginx/conf.d/nginx.custom.conf":
           mode: "644"
           owner: "root"
           group: "root"
           content: |
             client_header_timeout   300;
             client_body_timeout     300;
             send_timeout            300;
             proxy_connect_timeout   300;
             proxy_read_timeout      300;
             proxy_send_timeout      300;
    
     container_commands:
       01_restart_nginx:
         command: "sudo service nginx reload"
    

还有多种方法可以添加此配置。阅读更多here https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-nginx.html and here https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/nodejs-platform-proxy.html.

编辑(2020年6月11日): 有人表示,keep_alive 300;配置压垮了他们的服务器。因此,我已将其从nginx.custom.conf配置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS Elastic Beanstalk 504 网关超时 的相关文章

  • 从 EC2 W2008 实例创建 AMI - 为什么从来没有获得密码?

    我正在尝试做什么 我正在尝试克隆 EC2视窗2008通过管理控制台实例 该实例基于 Windows Server2008 i386 Base v104 ami 92ba43fb 但上面安装了许多应用程序 我想为新实例保留这些应用程序 发生了
  • 使用 Lambda 函数运行 AWS Athena 的查询

    我在 AWS Athena 上创建了一个表 可以在其中运行任何查询而不会出现任何错误 select from mytestdb test 该表有三列 customer Id product Id price 我尝试创建一个 lambda 函
  • Beanstalk 部署忽略 .ebextensions 中的 nginx 配置文件

    我在单实例 Elastic Beanstalk 环境中托管 Java Web 应用程序 并添加了几个 ebextension 文件 这些文件在每次部署时成功为我创建配置文件 然而 我无法找到一种方法让 Beanstalk 在 etc ngi
  • 如何使用对象标记上传到 AWS S3

    有没有办法使用标签将文件上传到AWS S3 不将标签添加到S3中的现有文件 对象 我需要让该文件与我的 Tags 一起出现在 S3 中 即在单个 API 调用中 我需要这个 因为我使用 Lambda 函数 使用这些 S3 对象标签 由 S3
  • 从本地计算机连接到 AWS 上的 Neptune

    我正在尝试从办公室的本地计算机连接到 AWS 实例中的 Neptune DB 就像从办公室连接到 RDS 一样 是否可以从本地计算机连接 Neptune 数据库 Neptune 数据库是否公开可用 开发人员有什么方法可以从办公室连接 Nep
  • Elastic Beanstalk 添加多个 ssl 证书

    我有一个 Docker Django api 应用程序 可以从多个域 abc xyx com 或 def lmn com 调用 我已从 Elastic beanstalk 中的配置控制台成功添加了 abc xyz com 的 ssl 证书
  • 如何在 PuTTY 中保存并运行 Java 文件?

    我是 AWS 亚马逊网络服务 的新手 所以这可能是一个基本问题 我在 AWS 上创建了一个 EC2 实例 我有一台 Windows 计算机 因此我使用 PUTTY 来连接 Linux 实例 连接到我的 EC2 实例后 我使用以下命令编写 J
  • AWS SQS Batch SendMessageBatchRequest 非常慢

    我的应用程序使用 SendMessageBatchRequest 将每个请求发布 10 条消息到 AWS SQS 每条消息的大小小于250字节 该应用程序预计每天发布约一百万条记录 但要实现这一目标 消息发布的速度非常慢 AmazonSQS
  • 从 Amazon API 网关终端节点输出纯文本内容

    使用 Amazon 的 API Gateway 我可以创建一个端点 该端点将调用输出纯文本的 lambda 函数 但是 当我在端点上发出请求时 输出会返回默认内容类型 application json 这将输出用引号括起来的纯文本响应 我想
  • 如何使用 AWS Glue 开始处理从 Web 服务终端节点提取的数据?

    更多源数据来自我需要定期轮询的 Web 服务端点 获得数据后 我可以使用 pyspark 执行传统的 ETL 并最终将数据写入 S3 和 Redshift 我不确定如何进行初始提取 甚至不确定我应该在 AWS Glue 文档中查找什么内容
  • AWS CodePipeline 构建缺少 Git 历史记录

    Context 我设置了一个 CodePipeline 它使用 CodeCommit 和 CodeBuild 作为其源和构建阶段 我的构建包括一个插件 com zoltu git versioning 使用 Git 提交历史记录来动态创建构
  • 带有 AWS S3 文件的 Icecast 服务器

    我目前正在运行 Icecast 服务器 用于在 EC2 实例上传输音频 目前我所有的 mp3 文件都存储在 EC2 实例上 我想将它们移动到 AWS S3 进行存储 到目前为止 我已经能够找到能够更新播放列表 https mediareal
  • X-Amz-Expires 是向 AWS 发出的请求所需的标头/参数吗?

    Is X Amz Expires必需的标头 参数 官方文档不一致 用在一些例子 http docs aws amazon com AmazonS3 latest API sigv4 query string auth html 虽然不在ot
  • AWS Lambda 提前结束(没有任何显式返回或回调)

    我在放入 AWS Lambda 中的一些 Node js 代码时遇到了一些问题 我需要进行几个异步调用 虽然第一个调用的行为符合我的预期 但 lambda 函数在第二个调用完成之前终止 返回值为 null 这让我认为 lambda 正在执行
  • 使用 Elastic Beanstalk 进行 Logback

    我在使用 Elastic Beanstalk 记录应用程序日志时遇到问题 我正在 AWS Elastic Beanstalk 上的 Tomcat 8 5 with Corretto 11 running on 64bit Amazon Li
  • 在 ec2 上托管 Rails

    我想将 Rails 部署到亚马逊 ec2 上 我看过 poolparty 和 ec2onrails 但似乎都不再维护了 人们用什么来做到这一点 都是自制的木偶和卡皮斯特拉诺 还是有一个项目可以让我继续下去 我可以推荐两个项目 如果您有一个
  • 使用无服务器访问 SSM 变量

    我想用无服务器变量中的 SSM 参数 https serverless com blog serverless v1 22 0 按照文档 我运行了以下命令 aws ssm put parameter name foo value bar t
  • AWS Cloudfront 作为具有自定义域的 Heroku 站点的 CDN

    最近 我从 AWS Route 53 brianpatrickhummel com 购买了一个域来托管个人投资组合 该投资组合网站已启动并正在运行 使用 S3 存储桶和 Cloudfront 作为 CDN 在作品集网站上 访问者可以预览我构
  • Amazon EC2 Auto Scaling CPU 利用率警报 - 数据不足

    因此 我一直在 Python 中使用 Boto 来尝试配置基于 CPUUtilization 的自动缩放 或多或少与本示例中指定的完全相同 http boto readthedocs org en latest autoscale tut
  • 如何授予轮换 Lambda 对 AWS Secrets Manager 的访问权限

    使用无服务器框架 我正在尝试构建定期轮换秘密的 Lambda 函数 https docs aws amazon com secretsmanager latest userguide rotating secrets html存储在 AWS

随机推荐

  • 如果我添加 ,pageX pageY 无法在 IE8 中工作

    嘿伙计们 我有以下脚本 当我移动鼠标时它会给出光标位置 这个脚本在 chrome FF 甚至 IE 8 没有 doctype html 如果添加 DOCTYPE html到 html 页面 它给我对象不支持此属性错误 下面给出的行导致了问题
  • 如何对 XMLAGG 函数聚合的字段进行排序?

    我有下表 Part number seq nbr Super narrative 1 1 When replacing 1 2 part with following parts 1 3 note follwing are now avai
  • Angular-cli 构建文件夹结构

    默认的 angular cli 构建生成具有非常扁平结构的 dist 文件夹 资产文件夹和 js html 文件 有没有办法创建 fe 脚本文件夹并在构建过程中将所有js文件放入其中 CLI 尚不完全支持这一点 但它确实提供了一些有用的工具
  • 从谷歌地图获取家庭/办公室地址

    我有一个基于地图的 Android 应用程序 并提供使用 Gmail 帐户登录的功能 现在 设备上的谷歌地图已经保存了用户的家庭和办公室地址 是否可以在无需用户输入的情况下获取这些数据 您可以使用以下命令对地址进行地理编码谷歌地理编码API
  • 如何在nib中轻松设计UIScrollView的内容

    我有一个滚动视图 它必须显示大于可用显示区域的视图 我希望轻松设计用户界面 而无需每次必须进行一些更改时上下移动嵌入视图 问题是可见区域之外的所有内容在 IB 中都是不可见的 是否有任何开关或技巧可以使 IB 中的所有内容都可见 UPDAT
  • Angular2 http获取请求结果变成404

    尝试在 Angular 2 TypeScript 中运行简单的 http get 调用 给予https angular io docs ts latest tutorial toh pt6 html https angular io doc
  • Java 8 的默认垃圾收集器

    Java 8 的默认垃圾收集器是什么 当我检查 JMX Beans 时 它们显示它是新一代的并行收集器和老一代的旧串行收集器 默认垃圾收集器 Java 7 并行 GC Java 8 并行 GC Java 9 G1 GC Java 10 G1
  • 对嵌套列表内的列表进行排序

    我有一个嵌套列表 9 8 7 8 7 6 7 6 5 6 5 4 5 4 3 4 3 2 3 2 1 我需要对列表中的列表进行排序才能创建 7 8 9 6 7 8 5 6 7 4 5 6 3 4 5 2 3 4 1 2 3 我该怎么做呢 你
  • R 闪亮的 AngularJS 工作

    我正在创建一个仪表板 其中 R 和 D3 与库 闪亮 一起运行 这工作得非常好 现在我想将 D3 代码转换为模块化对象 这将节省我大量的编码并使其可供其他人使用 我的想法是做到这一点
  • 按自定义字段日期列出自定义帖子类型

    我正在使用 Wordpress 和 WP Types 插件 需要按自定义字段日期对 CPT 进行排序 这工作正常 args array post type gt parties paged gt paged meta key gt wpcf
  • 在 Windows 7 上使用 powershell 2.0 下载文件

    这是我下载文件的脚本 我替换了下载的网址 因为它是一个私有云站点 我到处搜索 他们都说这是在旧版本的 PS 中下载的正确方法 但我不断收到错误 Exception calling DownloadFile with 2 argument s
  • 有 jQuery 图像和视频幻灯片库吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道有一个 jQuery 库可以用来制作图像幻灯片 并在幻灯片查看区域中嵌入视频 从而带来额外的好处
  • 如何仅与syncdb同步自定义权限?

    是否可以让manage pysyncdb命令仅将自定义权限同步到auth permission桌子 我不希望为应用程序模型安装默认的三个权限 即foo add bar foo change bar foo delete bar 我在模型类中
  • 如何根据泛型类型执行泛型结构体方法的不同实现?

    我有一个通用结构 我在扩展中的结构中添加了一个方法 如下所示 struct CustomStruct
  • JavaScript 模板继承

    在Django框架中 网页模板可以继承其他模板 在子模板中 您定义代码块来覆盖父模板中类似名称的块 我猜还有其他后端模板系统也以这种方式工作 但 Django 是我熟悉的一个 现有的 javascript 模板系统是否支持 django 风
  • Emacs 插入居中注释块

    我想为 emacs 创建一个宏 它将插入一个带有一些居中文本的乳胶注释块 例如 Comment 1 Comment 2 Commenttext 3 这可
  • 电子邮件地址输入验证

    有没有办法在 wpf C 中对电子邮件地址进行文本框输入验证 正则表达式或验证表达式或任何可以提供帮助的内容 最好提供代码示例和一些说明 在 text changed 事件中 您可以将文本框的值传递给辅助类 public static cl
  • PHP Curl 脚本每 10 分钟从远程服务器提取数据

    我正在尝试创建一个 PHP 脚本 该脚本从远程服务器提取 xml 数据 文本和图像 并将其插入本地数据库中 我需要每 10 分钟左右运行一次此脚本 并覆盖数据库中的现有数据 如果大约一分钟后没有收到服务器的响应 我希望请求中止 直到下一个脚
  • 如果可能,使用 AJAX 从 URL 获取 JSON 数据

    我想从下面的 URL 获取 JSON 数据 并以任何可能的方式在我的网页中使用它 可以吗 http fantasy premierleague com web api elements 100 http fantasy premierlea
  • AWS Elastic Beanstalk 504 网关超时

    我有一个在 AWS Elastic Beanstalk 上运行的节点服务器 我的一个端点接受巨大的有效负载 并且该函数本身相当缓慢且冗长 可能需要长达 10 多分钟的时间 由于业务需求 它必须保留为单个 HTTP POST 并且不能拆分得更