nginx环境变量配置_centos添加静态路由

nginx环境变量配置_centos添加静态路由如何在Nginx.conf使用环境变量 前言 在开发部署过程中,我们会将项目应用发布到不同的环境上,不同的环境通过不同的参数配置来加载不同的资源。 例如我们应用采用k8s方式管理部署应用容器,通过co

如何在Nginx.conf使用环境变量

前言

在开发部署过程中,我们会将项目应用发布到不同的环境上,不同的环境通过不同的参数配置来加载不同的资源。

例如我们应用采用k8s方式管理部署应用容器,通过configMap配置不同环境的资源。对于SpringBoot后台应用,我们可以将后台yaml配置文件所加载的资源设置成变量的形式,之后通过k8s configMap进行配置,而对于Nginx反向代理配置,configMap可以配置nginx服务的环境变量,如何让nginx.conf根据环境变量加载对应的配置,成为我们亟待解决的问题。

温馨提示:本文是萌新对nginx.conf引入环境变量方法的一种记录和学习,请大佬多多指正。

解决思路

如何在nginx配置中引入OS变量?经过相关的资料查询,nginx目前没有在配置中引入环境变量的内置功能,有的方案是引入ngx_http_perl_module的perl_set指令,这是nginx的额外模块。

这里提供一种另外的简易思路,来解决这个问题,我们可以通过环境变量生成nginx的外部配置文件,之后nginx.conf通过引入外部文件来实现环境变量参数的配置。

1)构建外部配置文件生成脚本otherserver.sh

通过configMap已配好nginx镜像容器的环境变量,在容器服务启动时,执行该脚本,生成待加载的外部配置文件upstream.conf

echo "upstream otherserver {" > /usr/local/nginx/conf/upstream.conf
echo " server $OTHER_SERVER1;" >> /usr/local/nginx/conf/upstream.conf
echo " server $OTHER_SERVER2;" >> /usr/local/nginx/conf/upstream.conf
echo "}" >> /usr/local/nginx/conf/upstream.conf
  1. nginx.conf从外部文件中引入配置参数
include ./upstream.conf
server {
	listen 1002;
	server_name otherserver;
	client_max_body_size 100m;
	server_tokens off;
	add_header X-Frame_Options SAMEORIGIN;
	
	location / {
		proxy_pass https://otherserver;
	}
}
  1. 编辑修改dockerfile
# 部分配置
ADD ./nginx.conf /usr/local/nginx/conf/
ADD ./run.sh /root
ADD ./otherserver.sh /root

EXPOSE 80
ENTRYPOINT ["sh","/root/run.sh"]

其中run.sh是服务启动脚本,加入dmzserver.sh执行语句。dockerfile配置好后,构建镜像。

# 部分配置加入
sh /root/dmzserver.sh
其他

中间遇到的坑,我们在nginx.conf配置反向代理https后,启动服务报错,只要原因是编译时没有添加ssl模块导致的。

解决方案:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module\
  -- with-http_ssl_module --error-log-path=/var/log/nginx/error.log --http=log=path=/var/log/nginx/access.og \
  && make && make install

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13377.html

(0)

相关推荐

  • Python字典添加键值对函数实现

    Python字典添加键值对函数实现Python给开发者提供了丰富的数据类型,包括列表、元组、字符串和字典等。在Python中,字典是一种非常常用的数据类型,可以用来存储键值对。

    2024-08-18
    18
  • Python 3安装指南

    Python 3安装指南Python是一门高级的编程语言,具有快速开发、代码可读性强、自动化任务等优点,在各个领域都比较流行。Python 3是Python的最新版本,许多新功能都在这个版本中添加,因此我们需要通过本篇文章指南来帮助读者了解如何在自己的电脑上安装Python 3。

    2024-07-01
    47
  • bootstrap+jquery+bootstrap-treeview实现菜单树极其父子节点的勾选功能「终于解决」

    bootstrap+jquery+bootstrap-treeview实现菜单树极其父子节点的勾选功能「终于解决」一、功能需求         根据后台所给的原始数据,将其重组成bootstrap-treeview列表树插件所需要的数据结构并渲染,再根据所勾选的节点数据,重组成后台所需要的数据结构进行请求。其中在

    2023-07-20
    113
  • Python 中单引号与双引号的区别

    Python 中单引号与双引号的区别在Python中,字符串可以使用单引号或双引号表示。例如:

    2024-04-17
    62
  • Redis设计与实现2.1:主从复制[通俗易懂]

    Redis设计与实现2.1:主从复制[通俗易懂]主从复制 这是《Redis设计与实现》系列的文章,系列导航:Redis设计与实现笔记 SLAVEOF 新旧复制功能 旧版复制功能 旧版复制功能的实现为 同步 和 命令传播: 当刚连上Master时,要

    2023-05-14
    152
  • mongodb—-复制「终于解决」

    mongodb—-复制「终于解决」mongodb复制原理mongodb的复制最少需要两个节点,一个master,用于处理用户的请求,其余都是从节点,负责复制主节点上的数据。mongodb常见集群环境:一主一从、一主多从。master…

    2023-04-01
    143
  • 【C语言进阶】指针数组 —— 数组指针

    【C语言进阶】指针数组 —— 数组指针🔥 注:本篇文章需要用到前一章内容二级指针的概念需要的可以去看看呢。  ⛳️ 指针数组是指针还是数组?这是我们想问的问题!其实我们可以采用类比的方法进行比较,比如说 整形数组 和 指针数组 俩个命名只有前面两个字不一样。数组我们已经知道整形数组,字符数组。那么指针数组该怎么定义呢…

    2023-11-12
    128
  • Python:最大数值求解神器

    Python:最大数值求解神器Python 作为一门面向对象的编程语言,对数字处理提供了很好的支持。除了 Python 原生的数值类型之外,也有很多常用的数值处理包。下面介绍常用的几个数值处理包。

    2024-02-06
    82

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注