根据环境variables设置nginx设置响应

我使用一个简单的Nginx docker容器来提供一些静态文件。 我使用在容器上设置环境variables的Kubernetes将这个容器部署到不同的环境(例如,分段,生产等)(假设FOO_COUNT )。

让Nginx将FOO_COUNT的值作为头部传递给每个响应的最简单的方法是什么,而不必为每个环境构build不同的容器?

开箱即用,nginx不支持大多数configuration块中的环境variables。 但是,您可以使用正式的nginx Docker镜像中所介绍的envsubst

只要创build一个名为nginx容器的configuration模板,例如/etc/nginx/conf.d/mysite.template

它包含你的nginxconfiguration,例如:

 location / { add_header X-Foo-Header "${FOO_COUNT}"; } 

然后用重写Dockerfile命令

 /bin/bash -c "envsubst < /etc/nginx/conf.d/mysite.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'" 

如果您使用的是docker-compose.yml文件,请使用命令 。

Kubernetes 提供了一种类似的方法来覆盖图像中的默认命令 。