【问题标题】:Elastic Beanstalk: customize Puma configurationElastic Beanstalk:自定义 Puma 配置
【发布时间】:2018-08-27 21:07:34
【问题描述】:

Ruby + Puma 的当前 Beanstalk 解决方案堆栈使用位于 /opt/elasticbeanstalk/support/conf/pumaconf.rb 的配置文件并忽略 Rails 应用程序目录中的 config/puma.rb

我可以通过.ebextensions 使用自定义文件覆盖上面的文件,但我很犹豫,因为我想避免损坏,以防 PID 的路径或更重要的是 - unix 套接字文件在即将到来的解决方案堆栈版本中发生变化。

在 Beanstalk 上自定义 Puma 配置的最佳做法是什么?

【问题讨论】:

    标签: ruby-on-rails amazon-web-services amazon-elastic-beanstalk puma


    【解决方案1】:

    在 Amazon Linux 2 上,您可以使用 Procfile 来执行此操作,例如

    web: puma -C /var/app/current/config/puma.rb

    有关更多信息,请参阅https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ruby-platform-procfile.html 的文档。

    【讨论】:

      【解决方案2】:

      我们使用 Ruby+Passenger,但听起来与您的情况非常相似。我们需要自定义存储在/opt/elasticbeanstalk/support/conf/nginx_config.erb的nginx配置文件,所以我们通过.ebextensionssed来实现。

      下面是一个帮助您入门的示例:

      .ebextensions/01-edit-nginx.config

      container_commands:
        01backup_config:
          command: "cp -n /opt/elasticbeanstalk/support/conf/nginx_config.erb /opt/elasticbeanstalk/support/conf/nginx_config.erb.original"
        02edit_config:
          command: "sh -c \"sed '/string_to_insert_text_after/ i\
      \    text_to_be_inserted;' /opt/elasticbeanstalk/support/conf/nginx_config.erb.original > /opt/elasticbeanstalk/support/conf/nginx_config.erb\""
      

      这将制作配置文件的备份副本(如果它已经存在,则不会覆盖它,这要归功于-n 标志),然后在“string_to_insert_text_after”行之后插入“text_to_be_inserted”行。您可以将多个 sed 命令连接在一起以插入多行。

      【讨论】:

        猜你喜欢
        • 2015-03-27
        • 2017-07-24
        • 2019-01-16
        • 2012-08-13
        • 2011-12-24
        • 2014-05-09
        • 2018-05-02
        • 2019-01-10
        • 2020-12-15
        相关资源
        最近更新 更多