我需要在nginx.conf中添加一些位置,以便环境URL指向app.php。我已经使用vi修改了文件。重新启动NGINX就可以了。但是我需要在使用eb deploy时自动加载此配置。
我已阅读并尝试过:https : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html
Elasticbeanstalk在Python的单个实例上配置HTTPS:模板中不允许使用空值
我有/.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写入所有文件之后在部署后执行。
资料来源:https : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platform-hooks.html
要在部署后执行任何脚本,请将以下代码放入.ebextensions根目录下的.config文件中
01_write_custom_ng_conf.config
commands:
create_post_dir:
command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/post"
ignoreErrors: true
files:
"/tmp/custom_nginx.conf":
mode: "000644"
owner: root
group: root
content: |
# your .conf file
"/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
资料来源: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] 删除。
我来说两句