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

本文介绍了如何利用Nginx与docker-compose结合,通过环境变量动态配置Nginx服务器和代理设置。在example.conf.template文件中,使用${}包裹环境变量如${NGINX_PORT},在docker-compose.yml中定义该变量,启动时Nginx会自动替换为实际值。代理配置和Dockerfile构建镜像的方法也在文中提及。
摘要由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       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值