有一种方法是在Amazon Linux 2上使用最新的.platform/nginx配置扩展(与旧的AMI相反)。 默认的nginx.conf在整个nginx.conf文件的两个位置包含配置部分。一个是直接在http块中,所以你不能在这里放置额外的location块,因为这在语法上是不法律的。第二个是在server块中,虽然,这是我们需要的。 第二个位置的部分文件包含在一个特殊的子目录.platform/nginx/conf.d/elasticbeanstalk中。将您的位置片段放在这里以添加位置块,如下所示:
8条答案
按热度按时间lc8prwob1#
有一种方法是在Amazon Linux 2上使用最新的
.platform/nginx
配置扩展(与旧的AMI相反)。默认的
nginx.conf
在整个nginx.conf
文件的两个位置包含配置部分。一个是直接在http
块中,所以你不能在这里放置额外的location
块,因为这在语法上是不法律的。第二个是在server
块中,虽然,这是我们需要的。第二个位置的部分文件包含在一个特殊的子目录
.platform/nginx/conf.d/elasticbeanstalk
中。将您的位置片段放在这里以添加位置块,如下所示:字符串
您可以在反向代理配置下的文档中找到此内容。
sshcrbum2#
我想做同样的事情。经过大量的挖掘,我发现了两种方法:
选项1.使用ebextension将nginx配置文件替换为自定义配置
我使用这个选项是因为它是最简单的一个。
按照Amazon在Using the AWS Elastic Beanstalk Node.js Platform - Configuring the Proxy Server - Example .ebextensions/proxy.config中给出的例子,我们可以看到他们创建了一个ebextension,创建了一个名为**/etc/nginx/conf.d/proxy.conf的文件,这个文件包含的内容和原来的nginx配置文件相同。然后,他们使用container_commands**删除了原来的nginx配置文件。
您需要将Amazon示例替换为当前nginx配置文件的内容。请注意,在containter命令中要删除的nginx配置文件也必须更新。我使用的配置文件有:
*nginx配置文件1:/opt/elasticbeanstalk/support/conf/webapp_healthd.conf
*nginx配置文件2:/etc/nginx/conf.d/webapp_healthd.conf
因此,对我有效的最终ebextension如下:
/.ebextensions/nginx_custom.config
字符串
部署好这个改动之后,需要重新加载nginx服务器,可以使用eb ssh your-environment-name连接到自己的服务器,然后运行sudo service nginx reload
选项2.使用ebextension修改nginx配置文件生成器,使其在最终的nginx配置文件中包含您的自定义位置
第二个选项基于这篇文章:jabbermarky's answer in Amazon forums
他在他的回答中很好地解释了这个方法,所以我鼓励你阅读它,如果你想实现它。如果你要实现这个答案,你需要更新nginx文件配置生成器的位置。
请注意,我没有测试过这个选项。
总之,他添加了一个shell脚本,在生成nginx配置文件之前执行。在这个shell脚本中,他修改了nginx配置文件生成器,以在生成的nginx配置文件中包含他想要的服务器块位置。最后,他在最终nginx配置文件的服务器块中添加了一个包含他想要的位置的文件。
doinxwow3#
看起来上面提到的方法已经不起作用了。新的方法是将nginx .conf文件放在.ebextensions的子文件夹中:
您现在可以将nginx.conf文件放在**.ebextensions/nginx文件夹中以覆盖Nginx配置。您也可以将配置文件放在.ebextensions/nginx/conf.d**文件夹中,以便将其包含在平台提供的Nginx配置中。
Source
这也不需要重新启动nginx,因为Elastic Beanstalk会处理这个问题。
yqkkidmi4#
嗯!
.ebextensions
!你可能最容易创建一个shell脚本来更改你的配置,然后运行它。真的不知道nginx,但尝试沿着行的东西:
字符串
也就是说,首先创建一个schell脚本来完成你所需要的,然后运行它。
哦,小心你的YAML中没有制表符!只允许空格...检查日志文件
/var/log/cfn_init.log
是否有错误...祝你好运!
neekobn85#
对于版本Amazon Linux 2,在您的捆绑包中使用此路径,并将此文件夹压缩在一起
.platform/nginx/conf.d/elasticbeanstalk/000_my_custom.conf
bbmckpt76#
这就是我的工作:
字符串
chy5wohz7#
要解决这个问题-你需要 Package 你的配置文件。如果你使用Docker,你应该有一个zip文件(我的文件名为
deploy.zip
),其中包含你的Dockerrun.aws.json
。如果你没有-它很容易修改,只需通过zip -r deploy.zip Dockerrun.aws.json
压缩你的部署有了这个-你现在需要添加一个
.platform
文件夹如下:字符串
您可以随意命名您的
custom.conf
,并且可以拥有任意数量的文件。型
或者任何你想为你的配置。与此-修改您的zip现在是
zip -r deploy.zip Dockerrun.aws.json
个然后部署。你的Nginx服务器现在将接受新命令
jfgube3f8#
这是可以实现的使用.ebextension配置文件,但我有困难踢nginx重新启动后,更改其配置文件。
字符串
现在,我已经做了类似的添加一个文件来踢nginx轮胎,但由于一些奇怪的原因,它没有执行:
型