在弹性beantalk上自定义nginx.conf

时间:2018-07-19 11:25:51

标签: nginx elastic-beanstalk

我需要自定义keepalive_timeout文件中的/etc/nginx/nginx.conf设置,该文件当前在弹性beantalk ec2实例上默认为65

我遵循了following的描述,但是当我部署新代码时,我收到类似Nginx的错误:

  

[emerg] 4551#0:“ keepalive_timeout”指令是   在/etc/nginx/conf.d/proxy.conf:2

中重复

稍后,我尝试使用sed直接更新nginx.conf

files:
  "/etc/nginx/conf.d/proxy.conf" :
    mode: "000755"
    owner: root
    group: root
    content: |
      client_max_body_size 200M;
      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_update_nginx:
    command: "sudo sed -i 's/keepalive_timeout  65;/keepalive_timeout  360;/g' /etc/nginx/nginx.conf"
  02_restart_nginx:
    command: "sudo service nginx reload"

哪个不再起作用(值未替换)。因此,我正在寻找更新/自定义nginx.conf文件的正确方法。我尝试了something like this 这给了我这样的错误:

  

Service:AmazonCloudFormation,   消息:[/资源/ AWSEBAutoScalingGroup /元数据/AWS::CloudFormation::Init/prebuild_0_appname/files//opt/elasticbeanstalk/#etc#nginx#custom-nginx.conf]   模板中不允许使用“空”值

1 个答案:

答案 0 :(得分:0)

如果您想走这条sed路线,则该命令应改为:

01_update_nginx:
  command: "sudo sed -i 's/keepalive_timeout  65;/keepalive_timeout  360;/g' /tmp/deployment/config/#etc#nginx#nginx.conf"

这是Beanstalk用来替换默认文件的实际nginx.conf(以及其他{例如00_elastic_beanstalk_proxy.conf)的位置。

不需要02_restart_nginx命令,您可以删除该命令(自19年8月起)。

我在Beanstalk env上使用运行在64位Amazon Linux / 4.8.2上的Node.js进行了测试。总体而言,它看起来有些黑,您可能想向AWS支持咨询有关自定义nginx.conf的“官方”方法。