nginx模板文件

nginx模板配置

  • 背景
  • 模板文件
  • nginx.conf
  • 容器验证

背景

nginx通过读取环境变量完成对nginx.conf的相关代理设置,但是nginx.conf不支持直接读取环境变量、所以使用nginx的模板功能达到相应目的

带有环境变量的 Nginx 配置文件模板。在 Docker 化部署 Nginx 时,为了能够通过环境变量动态地更改 Nginx 的配置,经常会引入这个模板文件。Docker 启动后会读取环境变量,替换掉 default.conf.template 中使用的环境变量,生成 default.conf,然后再启动 Nginx。

模板文件

server {listen ${PORT};server_name localhost;location / {root /usr/share/nginx/html;index index.html index.htm;}location /api {proxy_pass ${PROXY_URL};rewrite ^/api/(.*)$ /$1 break;}# 其他配置...
}

nginx.conf

通过 include /etc/nginx/conf.d/*.conf;引用所有配置文件

# nginx.confuser  root;
worker_processes auto;
error_log logs/error.log;events {use epoll;worker_connections 65535;
}http {include       mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for" $request_time';access_log  logs/access.log  main;sendfile            on;tcp_nopush          on;tcp_nodelay         on;keepalive_timeout   65;types_hash_max_size 2048;#gzip  on;include /etc/nginx/conf.d/*.conf;  # 引用 conf.d 目录下的所有 .conf 文件
}

容器验证

修改docker-compose并添加模板文件所需的环境变量PROXY_URL、PORT


version: '2.1'
services:nginx:container_name: nginxrestart: alwaysimage: nginxports:- 80:80- 443:443environment:TZ: "Asia/Shanghai"PROXY_URL: http://127.0.0.1/8890PORT: 9999volumes:- /home/nginx/data/conf.d:/etc/nginx/conf.d- /home/nginx/data/log:/var/log/nginx- /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf- /home/nginx/templates:/etc/nginx/templates- /usr/local/myApp:/usr/share/nginx/html

将模板文件放在/home/nginx/templates下并修改名字为test2.conf.template
在这里插入图片描述

server {listen ${PORT};server_name localhost;location / {root /usr/share/nginx/html;index index.html index.htm;}location /api {proxy_pass ${PROXY_URL};rewrite ^/api/(.*)$ /$1 break;}# 其他配置...
}

进入容器内部可看到/etc/nginx/conf.d下生成了test2.conf内容如下:
环境变量占位符均被替换

server {listen 9999;server_name localhost;location / {root /usr/share/nginx/html;index index.html index.htm;}location /api {proxy_pass http://127.0.0.1/8890;rewrite ^/api/(.*)$ /$1 break;}# 其他配置...
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/64269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

善于运用指针(四)--指针数组和多重指针

一个数组的元素均为指针类型,称为指针数组。指针数组中的每一个元素应都有地址,相当于一个变量。 文章目录 前言 一、指针数组的定义 二、指向指针数组的指针变量 1.指针数组 2.多重指针 三、main函数的参数 1.argc argv envp 总结 前言 主要是指针数组…

12篇--图像轮廓绘制与最小外接问题

何为轮廓? 轮廓是一系列相连的点组成的曲线,代表了物体的基本外形。与边缘有什么区别与联系呢? 相对于边缘,轮廓是连续的,边缘不一定连续,如下图所示。其实边缘主要是作为图像的特征使用,比如…

3.8 路由选择器协议

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅! 文章目录 前言1 静态路由选择2 动态路由选择3 自治系统(AS)4 域内路由选择5 域间路由选择7 路由器基本结构 前言 在计算机网络中,路由选择协议起着至…

#渗透测试#漏洞挖掘#红蓝攻防#SRC漏洞挖掘02之逻辑漏洞技巧

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。 目录 逻辑漏洞技巧 1、任意用户 1.1 验证码可爆…

CVE-2024-38819:Spring 框架路径遍历 PoC 漏洞复现

操作: 根据CVE-2024-38819:Spring 框架路径遍历 PoC 漏洞搭建复现的靶场环境 拿到环境的源码使用docker搭建 cd vuln 创建容器并启动 docker build -t cve-2024-38819-poc .docker run -d -p 8080:8080 --name cve-2024-38819-poc cve-2024-38819-po…

C#调用C++接口时,如何使用结构体参数

在C#中调用C接口时,通常使用平台调用服务(P/Invoke)或通过C/CLI创建托管包装器来实现。当涉及到结构体参数时,处理方式取决于几个因素,包括结构体的复杂度、是否需要在C和C#之间传递结构体、以及性能考虑。 以下是几种…

在pycharm2024.3.1中配置anaconda3-2024-06环境

version: anaconda3-2024.06-1 pycharm-community-2024.3.1 1、安装anaconda和pycharm 最新版最详细Anaconda新手安装配置环境创建教程_anaconda配置-CSDN博客 【2024最新版】超详细Pycharm安装保姆级教程,Pycharm环境配置和使用指南,看完这一篇就够了…

5.日常算法

1. 面试题 17.14. 最小K个数 题目来源 设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。 示例: 输入: arr [1,3,5,7,2,4,6,8], k 4 输出: [1,2,3,4] 方法一:堆 class Solution { public:vecto…

数据挖掘与机器学习(part 9) 规则挖掘Rules Mining关联规则(Association Rules) Apriori算法

基于规则的分类器:Classification using rule based classifier 互斥规则(Mutually exclusive rules): 分类器包含互斥规则,如果这些规则彼此独立。 每条记录最多被一条规则覆盖。 穷尽规则(Exhaustive …

Java Http 接口对接太繁琐?试试 UniHttp 框架吧

前言 从企业级项目来说,如果你项目里还在用传统的编程式Http客户端比如HttpClient、Okhttp去直接对接第三方Http接口, 那么你项目一定充斥着大量的对接逻辑和代码,并且针对不同的对接渠道方需要每次封装一次调用的简化,一旦封装不…

Laravel vs Symfony:哪个框架更适合你?

Laravel vs Symfony:哪个框架更适合你? 在当今的Web开发领域,PHP框架扮演着至关重要的角色。Laravel和Symfony是最受欢迎的两个PHP框架,各自拥有独特的特性和优势。本文将从多个方面对这两个框架进行比较,帮助开发者选…

Java基于SpringBoot的企业OA管理系统,附源码

博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…

Linux shell的七大功能 --- history

1.直接输入“history” 这个命令可以显示出曾经使用过的命令(最近时间的500条) history 2.“history”命令也可以搭配其他命令一起使用。 例:history | grep "vim",找出所有包含“vim”的记录; 也可以搭配…

【PHP】部署和发布PHP网站到IIS服务器

欢迎来到《小5讲堂》 这是《PHP》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 前言安装PHP稳定版本线程安全版解压使用 PHP配置配置文件扩展文件路径…

腾讯云COS跨域访问CORS配置

腾讯云COS跨域访问CORS配置方法如下,参考以下截图: 参考文章: 跨域及CORS-Nginx配置CORS

mac删除程序坞(Dock)中“无法打开的程序“

参考: Mac删除软件之后图标还在怎么办?https://blog.csdn.net/weixin_46500474/article/details/124284161Mac程序坞中软件删除出现残留“?”图标无法删除解决方法: https://blog.csdn.net/shenwenhao1990/article/details/12865…

EfficientNet与复合缩放理论(Compound Scaling Theory) 详解(MATLAB)

1.EfficientNet网络与模型复合缩放 1.1 EfficientNet网络简介 1.1.1 提出背景、动机与过程 EfficientNet是一种高效的卷积神经网络(CNN),由Google的研究团队Tan等人在2019年提出。EfficientNet的设计目标是提高网络的性能,同时减…

Java多线程与线程池技术详解(十)

拥有梦想,即拥有了生命的火种。 梦想是一座高山,攀爬起来虽然艰辛,但一旦到达顶峰,你的努力就将被铭记于人心。 梦想是一个拼图,每一次努力都是一块拼图,最终汇成一个完整的梦想。 梦想是你的信念&#xff…

后端-redis在springboot项目中的使用步骤

redis在springboot项目中的使用场景 如果再创建一张包含状态的表,里面就有两个字段一个id,一个状态,太浪费,那就使用redis存储, 设置营业状态打烊还是营业中

【鸿蒙实战开发】数据的下拉刷新与上拉加载

本章介绍 本章主要介绍 ArkUI 开发中最常用的场景下拉刷新, 上拉加载,在本章中介绍的内容在实际开发过程当中会高频的使用,所以同学们要牢记本章的内容。下面就让我们开始今天的讲解吧! List 组件 在 ArkUI 中List容器组件也可以实现数据滚动的效果&a…