如何在部署应用程序Elastic Beanstalk上修改NGINX配置

阿德里安·罗德里格斯(Adrian Rodriguez)

我需要在nginx.conf中添加一些位置,以便环境URL指向app.php。我已经使用vi修改了文件。重新启动NGINX就可以了。但是我需要在使用eb deploy时自动加载此配置

我已阅读并尝试过:https : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

Elasticbeanstalk在Python的单个实例上配置HTTPS:模板中不允许使用空值

如何为nginx位置指令配置.ebextensions?

Amazon Elastic Beanstalk扩展

我有/.ebextensions/01_nginx.config

files:
"/etc/nginx/nginx.conf":
    mode: "0000644"
    owner: root
    group: root
    content: |
        My conf file

但是该配置无法正常工作。我尝试通过“ /etc/nginx/my_nginx.conf”更改“ /etc/nginx/nginx.conf”:文件出现了!所以我尝试用以下自定义文件替换默认文件:

container_commands:
    deleteConf:
        command: "sudo rm /etc/nginx/nginx.conf"
    changeConf:
        command: "sudo cp /etc/nginx/my_nginx.conf  /etc/nginx/nginx.conf"

放在01_nginx.config中的先前配置下方。但是命令不起作用。nginx.conf不会被我的删除或替换。我做错了什么?

编辑:我读过.ebextensions中的文件按字母顺序求值。我想知道在文件存在之前是否正在执行复制命令。所以我创建了一个新文件/.ebextensions/02_copy.config并移到了那里

container_commands:
    deleteConf:
        command: "sudo rm /etc/nginx/nginx.conf"
    changeConf:
        command: "sudo cp /etc/nginx/my_nginx.conf  /etc/nginx/nginx.conf"

没有运气

棉花糖

花了整整一天的时间尝试在部署上修改nginx.conf之后,通过.ebextensions中.config文件直接在/ etc / nginx /中创建自定义nginx.conf对我不起作用,因为默认情况下它将被系统覆盖一。

当我在/ tmp中创建自定义文件并编写一个container_command替换/etc/nginx/nginx.conf时,也会发生同样的事情

实际上,您需要创建一个脚本,该脚本将在弹性beantalk写入所有文件之后在部署执行

如果您使用的是Amazon Linux 1环境:

资料来源:https : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platform-hooks.html

要在部署后执行任何脚本,请将以下代码放入.ebextensions根目录下的.config文件中

01_write_custom_ng_conf.config

  1. 创建一个目录来存储您的脚本。
commands:
  create_post_dir:
    command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/post"
    ignoreErrors: true
  1. 创建修改后的nginx.conf文件并将其放在/ tmp中
files:
  "/tmp/custom_nginx.conf":
     mode: "000644"
     owner: root
     group: root
     content: |
       # your .conf file
  1. 在第1步创建的/ opt / elasticbeanstalk / hooks / appdeploy / post中创建一个脚本,用您的自定义脚本替换原始nginx.conf。这应在部署后自动执行。
   "/opt/elasticbeanstalk/hooks/appdeploy/post/update_ng_conf.sh":
     mode: "000644"
     owner: root
     group: root
     content:
       #!/usr/bin/bash
       sudo mv /tmp/custom_nginx.conf /etc/nginx/nginx.conf 

如果您使用的是Amazon Linux 2环境:

资料来源:https : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux-extend.html

现在可以从.platform子文件夹中执行脚本,您必须将它们放在项目的根目录中,如下所示:

~/your-app/
|-- someFile.py
|-- Procfile
|-- readme.md
|-- .ebextensions/
|   |-- 01_write_custom_ng_conf.config        
`-- .platform/
    |-- hooks
        `-- postdeploy
            `-- 01_update_ng_conf.sh        # Executed post deployment

.ebextensions的根目录下创建一个.config文件

01_write_custom_ng_conf.config

创建修改后的nginx.conf文件并将其放在/ tmp中

files:
  "/tmp/custom_nginx.conf":
     mode: "000644"
     owner: root
     group: root
     content: |
       # your .conf file

.platform / hooks / postdeploy中创建一个小脚本,并将权限更改为755

01_update_ng_conf.sh

#!/usr/bin/bash

# Replace the original nginx.conf by our custom one
sudo mv /tmp/custom_nginx.conf /etc/nginx/nginx.conf

# Restart nginx to apply modifications
sudo service nginx restart

Amazon Linux 2 Python 3.7环境中,这对我来说工作得很好不确定您的情况,但是应该一样。

确保您的.config文件缩进是完美的,因为解析器并不总是能够检测到错误,并且代码不会被执行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在AWS Elastic Beanstalk上配置我的WSGI应用程序的名称?

来自分类Dev

如何在Elastic Beanstalk应用程序中监视控制台输出(stdout)?

来自分类Dev

如何在AWS Elastic-Beanstalk上自动重新启动节点应用程序

来自分类Dev

如何在AWS Elastic Beanstalk上部署结构化Flask应用程序

来自分类Dev

在设备上部署后,该应用程序如何在sencha touch上运行?

来自分类Dev

如何在自动缩放的(多实例)Elastic Beanstalk(Tomcat)应用程序(AWS)中配置数据文件?

来自分类Dev

如何在使用dokku部署的Rails应用程序上启动Faye服务器?

来自分类Dev

如何为部署到AWS Elastic Beanstalk的ASP.NET应用程序设置应用程序池标识

来自分类Dev

如何在已部署的Heroku应用程序上安装我的Bower依赖项?

来自分类Dev

如何从Jenkins将Python应用程序部署到Amazon Elastic Beanstalk?

来自分类Dev

如何使用nginx + docker将AngularJS应用程序部署到Elastic Beanstalk?

来自分类Dev

如何在远程Weblogic服务器上热部署Web应用程序?

来自分类Dev

部署在Elastic Beanstalk Java环境上的Spring Boot应用程序返回502

来自分类Dev

在Elastic Beanstalk上部署金字塔应用程序

来自分类Dev

如何在AWS Elastic Beanstalk上强制应用程序版本

来自分类Dev

如何在IIS上使用CGI部署Python应用程序?

来自分类Dev

如何在AWS中查看或找到当前的Nginx配置(通过弹性beantalk部署的应用程序)

来自分类Dev

部署Flask应用程序时如何解决此Elastic Beanstalk错误:在系统上找不到Python 3.7.0

来自分类Dev

如何增加已部署的Elastic Beanstalk应用程序的Nginx超时?

来自分类Dev

将PHP应用程序部署到Elastic Beanstalk的问题

来自分类Dev

在Elastic Beanstalk上部署Flask应用程序:没有名为“应用程序”的模块

来自分类Dev

如何在AWS Elastic Beanstalk中访问/下载当前应用程序?

来自分类Dev

如何在Elastic Beanstalk应用程序中监视控制台输出(stdout)?

来自分类Dev

如何为部署到AWS Elastic Beanstalk的ASP.NET应用程序设置应用程序池标识

来自分类Dev

如何将Spring Boot应用程序大战部署到AWS Elastic Beanstalk?

来自分类Dev

如何在部署在tomcat上的JBPM 6.2中设置应用程序角色

来自分类Dev

如何在部署了MUPX的流星应用程序上备份mongodb

来自分类Dev

在Elastic Beanstalk上部署金字塔应用程序

来自分类Dev

如何在不重置数据库的情况下在 Elastic Beanstalk 上部署新版本的 Ruby on Rails 应用程序?

Related 相关文章

  1. 1

    如何在AWS Elastic Beanstalk上配置我的WSGI应用程序的名称?

  2. 2

    如何在Elastic Beanstalk应用程序中监视控制台输出(stdout)?

  3. 3

    如何在AWS Elastic-Beanstalk上自动重新启动节点应用程序

  4. 4

    如何在AWS Elastic Beanstalk上部署结构化Flask应用程序

  5. 5

    在设备上部署后,该应用程序如何在sencha touch上运行?

  6. 6

    如何在自动缩放的(多实例)Elastic Beanstalk(Tomcat)应用程序(AWS)中配置数据文件?

  7. 7

    如何在使用dokku部署的Rails应用程序上启动Faye服务器?

  8. 8

    如何为部署到AWS Elastic Beanstalk的ASP.NET应用程序设置应用程序池标识

  9. 9

    如何在已部署的Heroku应用程序上安装我的Bower依赖项?

  10. 10

    如何从Jenkins将Python应用程序部署到Amazon Elastic Beanstalk?

  11. 11

    如何使用nginx + docker将AngularJS应用程序部署到Elastic Beanstalk?

  12. 12

    如何在远程Weblogic服务器上热部署Web应用程序?

  13. 13

    部署在Elastic Beanstalk Java环境上的Spring Boot应用程序返回502

  14. 14

    在Elastic Beanstalk上部署金字塔应用程序

  15. 15

    如何在AWS Elastic Beanstalk上强制应用程序版本

  16. 16

    如何在IIS上使用CGI部署Python应用程序?

  17. 17

    如何在AWS中查看或找到当前的Nginx配置(通过弹性beantalk部署的应用程序)

  18. 18

    部署Flask应用程序时如何解决此Elastic Beanstalk错误:在系统上找不到Python 3.7.0

  19. 19

    如何增加已部署的Elastic Beanstalk应用程序的Nginx超时?

  20. 20

    将PHP应用程序部署到Elastic Beanstalk的问题

  21. 21

    在Elastic Beanstalk上部署Flask应用程序:没有名为“应用程序”的模块

  22. 22

    如何在AWS Elastic Beanstalk中访问/下载当前应用程序?

  23. 23

    如何在Elastic Beanstalk应用程序中监视控制台输出(stdout)?

  24. 24

    如何为部署到AWS Elastic Beanstalk的ASP.NET应用程序设置应用程序池标识

  25. 25

    如何将Spring Boot应用程序大战部署到AWS Elastic Beanstalk?

  26. 26

    如何在部署在tomcat上的JBPM 6.2中设置应用程序角色

  27. 27

    如何在部署了MUPX的流星应用程序上备份mongodb

  28. 28

    在Elastic Beanstalk上部署金字塔应用程序

  29. 29

    如何在不重置数据库的情况下在 Elastic Beanstalk 上部署新版本的 Ruby on Rails 应用程序?

热门标签

归档