2015-05-17 190 views
1

我有一个安装程序在弹性beanstalk上运行python flask应用程序。我的问题是,我得到这个414错误代码。我已经加入到LimitRequestLine 200000httpd.conf,并与sudo httpd service restart在EC2实例的外壳重新启动,但它似乎没有这样的伎俩..aws elastic beanstalk“Request-URI Too Long”

这完全适用于Apache服务器在EC2上运行没有弹性魔豆。也许负载平衡器是责任?

我真的很感激任何帮助......

另一个奇怪的事情 - 如果我重新启动从EC2实例壳httpd服务,从长远URI可以通过一次,只有一次 - 第二次我得到了再次.. 414

感谢

+0

如果你需要发送大量的数据,你确实应该使用POST。你有没有理由不能? – datasage

回答

1

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