Nginx + docker-compose读取环境变量实现Web服务器和代理

Using environment variables in nginx configuration (new in 1.19)Out-of-the-box, nginx doesn't support environment variables inside most configuration blocks. But this image has a function, which will extract environment variables before nginx starts.He
摘要由CSDN通过智能技术生成

参考官方文档:https://hub.docker.com/_/nginx

编写template

docker nginx版本要求,大于等于1.19,符合版本的镜像有一个功能,会在nginx启动前提取环境变量。

示例docker-compose.yml:

web:
  image: nginx
  volumes:
   - ./templates:/etc/nginx/templates
  ports:
   - "8080:80"
  environment:
   - NGINX_HOST=example.com
   - NGINX_PORT=80

假设我们有一个Nginx的配置文件:example.conf,将此配置文件重命名为example.conf.template,并放在docker-compose.yml同一目录下的templates目录中(没有则自己新建一个,若用其他目录根据实际情况调整docker-compose的volumes下的映射路径即可)

默认情况下,容器启动时会读取此目录下所有模板文件/etc/nginx/templates/*.template,并映射到/etc/nginx/conf.d目录下,例如example.conf.template会被映射成/etc/nginx/conf.d/example.conf

所以,我们可以这样配置,在example.conf.template中将需要映射的environment变量以${}格式包裹起来,如下的${NGINX_PORT}

listen       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值