根据环境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 提供了一种类似的方法来覆盖图像中的默认命令 。