【问题标题】:aws elastic beanstalk "Request-URI Too Long"aws 弹性豆茎“请求 URI 太长”
【发布时间】:2015-07-28 23:03:55
【问题描述】:

我有一个在弹性豆茎上运行 python 烧瓶应用程序的设置。我的问题是我收到了这个 414 错误代码。我已将LimitRequestLine 200000 添加到httpd.conf,并在ec2 实例的shell 上使用sudo httpd service restart 重新启动,但它似乎无法解决问题..

这对于运行在 ec2 而不是弹性 beanstalk 上的 apache 服务器非常有效。也许是负载均衡器的错?

非常感谢您对此的任何帮助...

另一件奇怪的事情 - 如果我从 ec2 实例上的 shell 重新启动 httpd 服务,长 uri 可以通过一次,并且只能通过一次 - 第二次我再次获得 414..

谢谢

【问题讨论】:

  • 如果你需要发送这么多数据,你真的应该使用 POST。你不能有什么理由吗?
  • @datasage eb 中的 POST 也存在同样的问题

标签: apache amazon-web-services amazon-ec2 amazon-elastic-beanstalk


【解决方案1】:

另一种方式可以是直接修改负载均衡器,增加参数“large_client_header_buffers”。这可能需要应用程序负载均衡器(与默认的经典负载均衡器相比)。

例如在文件夹 .ebextensions 中创建文件 files.config

files:
  "/etc/nginx/conf.d/proxy.conf":
    mode: "000755"
    owner: root
    group: root
    content: |
     large_client_header_buffers 16 1M;

【讨论】:

    【解决方案2】:

    LimitRequestLine 应位于 <VirtualHost> 部分中。在 Elastic Beanstalk 中执行此操作非常棘手,因为您需要将此行添加到 /etc/httpd/conf.d/wsgi.conf,这是在运行 commandscontainer_commands 之后自动生成的。根据this博客的想法,将以下内容添加到.ebextensions下的配置文件中:

    commands:
      create_post_dir:
        command: "mkdir -p /opt/elasticbeanstalk/hooks/appdeploy/post"
        ignoreErrors: true
    files:
      "/opt/elasticbeanstalk/hooks/appdeploy/post/99_adjust_request_limit.sh":
        mode: "000755"
        owner: root
        group: root
        content: |
          #!/usr/bin/env bash
          sed -i.back '/<VirtualHost/aLimitRequestLine 100000' /etc/httpd/conf.d/wsgi.conf
          supervisorctl -c /opt/python/etc/supervisord.conf restart httpd
    

    【讨论】:

      猜你喜欢
      • 2018-02-25
      • 2017-09-01
      • 2019-04-21
      • 2014-12-22
      • 1970-01-01
      • 2015-03-20
      • 2016-01-04
      • 2015-03-12
      • 2014-07-17
      相关资源
      最近更新 更多