我的编程空间,编程开发者的网络收藏夹
学习永远不晚

nginx配置文件使用环境变量的操作方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

nginx配置文件使用环境变量的操作方法

前言

Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。

由于现在需要部署nginx的docker,希望nginx配置文件里面有关server_name在启动容器前动态修改。
但是由于nginx的配置文件不支持使用环境变量。网上找了好些方案,最终选择使用envsubst的方式改写nginx配置文件。

工作原理

Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。

Nginx的模块从结构上分为核心模块、基础模块和第三方模块:

核心模块:HTTP模块、EVENT模块和MAIL模块
基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块,
第三方模块:HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块。

学习envsubst

envsubst就是将环境变量替换文件里面指定标记的值。
例如有如下文件env.conf,内容如下


[test]
ip = ${ip}
port = ${port}
url = http://${ip}:${port}/index.html
phone = ${phone}

当执行export ip=192.168.1.5export port=8081export phone=13522223334写入环境变量。
然后执行envsubst < env.conf > env.new.conf,就可以生成如下的env.new.conf


[test]
ip = 192.168.1.5
port = 8081
url = http://192.168.1.5:8081/index.html
phone = 13522223334

还可以指定只替换部分环境变量,source env.env && envsubst '$ip;$phone' < env.conf,这样只会替换ip和phone这两个变量。
上面只替换部分环境变量,在Linux测试只能用单引号,用双引号无效,分隔符试过, . ; |这四种都可以,我估计还有更多分隔符。

应用nginx配置文件

docker-compose.yml文件如下


version: "3"
 
services:
  nginx:
    image: nginx:1.20.1-alpine
    container_name: nginx
    ports:
      - 80:80
      - 443:443
    environment:
      - NGINX_HOST=www.janbar.com
      - NGINX_PORT=80
    volumes:
      - /root/janbar.temp:/etc/nginx/conf.d/janbar.temp
    command: /bin/sh -c "envsubst < /etc/nginx/conf.d/janbar.temp > /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'"
    network_mode: bridge
    restart: always

/root/janbar.temp文件内容如下


server {
    listen       ${NGINX_PORT};
    listen  [::]:${NGINX_PORT};
    server_name  ${NGINX_HOST};

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

按照上述docker-compose.yml配置文件最终生成docker容器里面的配置文件如下cat /etc/nginx/conf.d/default.conf


server {
    listen       80;
    listen  [::]:80;
    server_name  www.janbar.com;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

总结

经过上述骚操作,最终可以通过环境变量的方式更新nginx的docker容器内部配置文件。大功告成!

以上就是nginx配置文件使用环境变量的详细内容,更多关于nginx环境变量的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

nginx配置文件使用环境变量的操作方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在nginx配置文件中使用环境变量

这期内容当中小编将会给大家带来有关如何在nginx配置文件中使用环境变量,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd
2023-06-15

配置python环境变量的方法

这篇文章主要介绍配置python环境变量的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!配置python环境变量的方法:首先打开属性,找到“高级系统设置”;然后点击“环境变量”,找到Path;接着在字符串的末尾加
2023-06-14

Android 环境变量的配置方法

我们在创建AVD时,在命令行窗口中输入android list targets会提示:'android'不是内部或外部命令,如图1,其实这主要是由于没有配置好Android SDK环境变量引起的。
2022-06-06

Linux环境变量配置的方法

这篇文章主要讲解了“Linux环境变量配置的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux环境变量配置的方法”吧!Linux环境变量配置在自定义安装软件的时候,经常需要配置环境
2023-06-15

python环境变量的配置方法

这篇文章主要介绍了python环境变量的配置方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python环境变量的配置方法:首先鼠标右键此电脑,选择属性;然后点击高级系统设
2023-06-08

Win10配置Python环境变量的方法

这篇文章将为大家详细讲解有关Win10配置Python环境变量的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Win10配置Python环境变量的方法:首先打开电脑系统窗口,选择高级系统设置;然后点击
2023-06-07

win8/win8.1系统怎么配置java环境变量?配置java环境变量的方法

配置java环境变量的方法:1、在你的计算机上右击,选择其中的属性;2、作出如下图所示的选择;3、选择高级,再选择环境变量;4、在这里添加一个java_home就可以了,如下图所示.添加的值就是你的jre的位置;5、还要改变一下你的path
2022-06-04

配置PyCharm环境变量的正确方法

在PyCharm中正确配置环境变量对于开发人员来说是非常重要的,因为环境变量可以帮助我们在项目中使用特定的配置信息、密钥、路径等。在本文中,我将详细介绍如何在PyCharm中正确配置环境变量,并提供具体的代码示例。首先,打开PyCharm
配置PyCharm环境变量的正确方法
2024-02-24

Linux中Bash环境变量的配置方法

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 以下是几种shell版本,bash是默认的:sh(全称 Bourne Shell): 是UNIX最初使用的 s
2022-06-03

go项目中环境变量的配置方法

这篇文章主要介绍“go项目中环境变量的配置方法”,在日常操作中,相信很多人在go项目中环境变量的配置方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”go项目中环境变量的配置方法”的疑惑有所帮助!接下来,请跟
2023-06-20

Tomcat配置环境变量的方法是什么

配置Tomcat的环境变量可以通过以下方法:1. 手动配置:打开Tomcat安装目录下的bin文件夹,找到catalina.bat(Windows系统)或catalina.sh(Linux系统)文件,使用文本编辑器打开该文件。在文件开头的注
2023-09-15

plsql配置环境变量的方法是什么

配置PL/SQL(Procedural Language for SQL)开发环境通常涉及到安装Oracle数据库以及配套的客户端工具,例如Oracle SQL Developer、PL/SQL Developer等。而配置环境变量主要是为
plsql配置环境变量的方法是什么
2024-04-18

jdk环境变量配置的方法是什么

以下是JDK环境变量配置的方法:1. 下载JDK并安装。2. 打开计算机的“属性”窗口,点击“高级系统设置”。3. 点击“环境变量”。4. 在“系统变量”中,找到“Path”,点击“编辑”。5. 在“编辑环境变量”窗口中,点击“新建”,输入
2023-06-10

vue中.env文件配置环境变量的实现

本文主要介绍了vue中.env文件配置环境变量的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-14

Vue配置环境变量的方法是什么

这篇文章主要介绍“Vue配置环境变量的方法是什么”,在日常操作中,相信很多人在Vue配置环境变量的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue配置环境变量的方法是什么”的疑惑有所帮助!接下来
2023-06-26

crontab的环境变量的使用方法

这篇文章主要讲解了“crontab的环境变量的使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“crontab的环境变量的使用方法”吧!环境:(产品,平台,机型,软件版本,等)AIX5L
2023-06-13

编程热搜

目录