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)

流架构的读书笔记(1) 一、什么是流? 流是一种网络化的软件集成,它是事件驱动的,松耦合的 高度灵活的和可高度扩展的。它主要是由标准接口和协议 定义的,这些接口和协议能够以最小的冲突和工作量实现 集成…

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

一个数组的元素均为指针类型,称为指针数组。指针数组中的每一个元素应都有地址,相当于一个变量。 文章目录 前言 一、指针数组的定义 二、指向指针数组的指针变量 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 …

pdf merge

在 Ubuntu 22.04 上,你可以使用以下命令行工具来合并多个 PDF 文件: 1. pdftk pdftk 是一个强大的 PDF 工具,支持合并、拆分和其他操作。安装和使用方法如下: sudo apt install pdftk pdftk file1.pdf file2.pdf cat output me…

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技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…

Docker:国内加速源

阿里云docker加速云&#xff1a; sudo tee /etc/docker/daemon.json <<EOF { “registry-mirrors”: [“https://euf11uji.mirror.aliyuncs.com”] } EOFhttps://docker.mozhu.dev/ sudo tee /etc/docker/daemon.json <<EOF {"registry-mirrors": [&qu…

2.python变量

理解&#xff0c;我将提供更详细和深入的解释&#xff0c;包括一些进阶概念和实际应用的例子。我们将从变量类型开始&#xff0c;逐步深入到每种数据类型的特性、操作方法以及它们在编程中的应用场景。 文章目录 1. 变量赋值与作用域变量赋值变量作用域 2. 标准数据类型Number…

Linux shell的七大功能 --- history

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

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

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

解锁SQL无限可能:如何利用HiveSQL实现0-1背包问题?

目录 1. 创建物品信息表 2. 设置背包容量(通过 Hive 变量设置) 3. 创建动态规划表并初始化 4. 动态规划填充表格过程

Parcel 插件开发指南:如何为 Parcel 创建自定义插件

前言 Parcel 是一个非常强大的打包工具&#xff0c;适用于快速构建现代 Web 应用程序。它默认提供了很多开箱即用的功能&#xff0c;但在某些场景下&#xff0c;我们可能需要自定义一些功能来满足特定需求。这个时候&#xff0c;编写自定义插件就显得尤为重要。本文将通过一个…