web应用-Nginx学习笔记01-应用的组成结构,配置项的分类和理解

参考来源:

在线文档:Nginx开发从入门到精通,https://docs.pythontab.com/nginx/nginx-book/
极客专栏:nginx核心100讲,作者:陶辉
书籍:《深入理解Nginx:模块开发与架构解析》第二章
参考来源:https://blog.csdn.net/benshu_001/article/details/139637802

Nginx的三个主要应用场景

在这里插入图片描述
静态资源服务
通过本地文件系统提供服务

反向代理服务,缓存,负载均衡

API服务,OpenResty

Nginx 的组成

  1. Nginx.conf配置文件–控制nginx的行为
  2. Nginx二进制可执行文件–由各模块源码编译出的个文件
  3. access.log访问日志–记录每一条http请求信息
  4. error.log错误日志–定位问题

Nginx配置解读

配置语法

01配置文件由指令与指令块构成
02每条指令以;分号结尾,指令与参数间以空格符号分隔
03指令块以(大括号将多条指令组织在一起
04include语句允许组合多个配置文件以提升可维护性
05使用符号添加注释,提高可读性
06使用$符号使用变量
07部分指令的参数支持正则表达式

nginx的模块分类

在这里插入图片描述

第二章:Nginx的配置(来自书籍:深入理解Nginx:模块开发与架构解析)

本章的目的是熟悉Nginx的配置文件,包括配置文件的语法格式、运行所有Nginx服务必须具备的基础配置以及使用HTTP核心模块配置静态Web服务器的方法,最后还会介绍反向代理服务器。

通过本章的学习,读者可以:熟练地配置一个静态Web服务器;对影响Web服务器性能的各个配置项有深入的理解;对配置语法有全面的了解。通过互联网或其他途径得到任意模块的配置说明,然后可通过修改nginx.conf文件来使用这些模块的功能

块配置项

块配置项由一个块配置项名和一对大括号组成。

块配置项一定会用大括号把一系列所属的配置项全包含进来,表示大括号内的配置项同时生效。所有的事件类配置都要在events块中,http、server等配置也遵循这个规定。

块配置项可以嵌套。内层块直接继承外层块

配置项的语法格式

配置项名 配置项值 1 配置项值 2……;

配置项的构成部分

首先,在行首的是配置项名,这些配置项名必须是Nginx的某一个模块想要处理的,否则Nginx会认为配置文件出现了非法的配置项名

其次是配置项值,它可以是数字或字符串(当然也包括正则表达式)。针对一个配置项,既可以只有一个值,也可以包含多个值,配置项值之间仍然由空格符来分隔。

最后,每行配置的结尾需要加上分号。
注意 如果配置项值中包括语法符号,比如空格符,那么需要使用单引号或双引号括住配置项值,否则Nginx会报语法错误。

配置项的注释

如果有一个配置项暂时需要注释掉,那么可以加"#"注释掉这一行配置

配置项的分类(四类)

由于配置项较多,所以把它们按照用户使用时的预期功能分成了以下4类(分类依据)

❑用于调试、定位问题的配置项。
❑正常运行的必备配置项。
❑优化性能的配置项。
❑事件类配置项(有些事件类配置项归纳到优化性能类,这是因为它们虽然也属于events{}块,但作用是优化性能)。

Nginx配置文件概述
Nginx的配置文件通常位于/etc/nginx/nginx.conf,但也可以通过命令行参数指定不同的配置文件。配置文件由指令和指令块组成,指令块可以嵌套,形成一个层次结构。每个指令块定义了一个特定的上下文,比如事件(events)、HTTP(http)、服务器(server)和位置(location)。

配置文件基本结构

一个典型的Nginx配置文件包括以下几个部分:

全局指令(main):配置影响Nginx全局的指令,如用户(user)、pid(pid)、日志级别(log level)和工作进程数(worker_processes)。
事件指令(events):配置与客户端连接处理相关的指令,如工作进程可以打开的连接数(worker_connections)。
HTTP指令(http):配置HTTP服务器和虚拟主机的指令,通常包含一个或多个server块。
服务器指令(server):定义虚拟主机的配置,可以包含多个location块。
位置指令(location):处理特定URL模式的配置。

关键指令
user:定义Nginx运行的用户和用户组。
worker_processes:设置Nginx工作进程的数量。
pid:指定Nginx进程ID文件的路径。
events:包含与事件处理相关的指令,如worker_connections。
http:包含与HTTP服务器相关的指令,如server块。
server:定义虚拟主机,可以包含listen、server_name、root等指令。
location:处理特定URL模式的指令块。

配置文件结构

nginx在ubuntu1804上的安装后的配置文件结构

root@ub1804:/etc/nginx# tree
.
├── conf.d
├── fastcgi.conf
├── fastcgi_params
├── koi-utf
├── koi-win
├── mime.types
├── modules-available
├── modules-enabled
│   ├── 50-mod-http-geoip.conf -> /usr/share/nginx/modules-available/mod-http-geoip.conf
│   ├── 50-mod-http-image-filter.conf -> /usr/share/nginx/modules-available/mod-http-image-filter.conf
│   ├── 50-mod-http-xslt-filter.conf -> /usr/share/nginx/modules-available/mod-http-xslt-filter.conf
│   ├── 50-mod-mail.conf -> /usr/share/nginx/modules-available/mod-mail.conf
│   └── 50-mod-stream.conf -> /usr/share/nginx/modules-available/mod-stream.conf
├── nginx.conf
├── proxy_params
├── scgi_params
├── sites-available
│   └── default
├── sites-enabled
│   └── default -> /etc/nginx/sites-available/default
├── snippets
│   ├── fastcgi-php.conf
│   └── snakeoil.conf
├── uwsgi_params
└── win-utf

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

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

相关文章

HTML5休闲小游戏《猫猫超市》源码,引流、刷广告利器

HTML5休闲小游戏《猫猫超市》源码,直接把源码上传到服务器就能使用了! 下载链接:https://www.huzhan.com/code/goods467910.html

「邀请函」相约广州!科东软件诚邀您参加2024亚洲电力展&亚洲新型电力及储能论坛

能源电力行业盛会-2024亚洲新型电力系统及储能展览会将于6月26日在广州广交会展馆B区一楼盛大开幕!展会同期,由南方电网主办,科东软件协办的2024亚洲新型电力及储能论坛也将同步召开,高峰论坛将为能源领域提供领先的前瞻资讯、技术…

基于Java网上跳蚤市场系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟感兴趣的可以先收藏起来,还…

【工具类的编写】

编写工具类 最近在写一个C的项目,发现编写项目的过程真是曲折,所以写通过博客方式来对本项目进行一个重新的梳理。以便于自己来更好的了解这个项目。 1. 时间类的编写 我们都知道在C中获取时间戳很简单,但是怎么把一个时间戳转换为我们平时…

精密机械中的滚珠螺杆与螺杆支撑座的完美配合!

螺杆支撑座和滚珠螺杆是机械设备中的重要部件。滚珠螺杆通常运用在自动化设备中,需高速运动、高精度定位均依靠它的优良性能,如机床,数控、工业机器人等机械设备。螺杆支撑座装在螺杆的两端,支撑座有两端,固定端和支撑…

TLS + OpenSSL + Engine + PKCS#11 + softhsm2 安全通信

引擎库路径只有在 /lib 下才能被 "LOAD" 识别到,OpenSSL的ReadMe给的示例在/lib,看源码才能知道为何不能任意指定路径 // #define PKCS11_ENGINE_PATH "/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so" #define PKCS11_ENGINE_P…

线性代数|机器学习-P18快速下降奇异值

文章目录 1. 为什么要低秩矩阵 1. 为什么要低秩矩阵 我们的世界里面有很多数据,如果我们原封不动的发送数据,那么会导致数据量的增大,我们希望对数据进行压缩后再打包压缩,这样的话我们能够在带宽一定的情况下发送更多的数据&…

通过ETLCloud实现SQL Server数据同步至Oracle

SQL Server与Oracle作为全球两大主流的关系型数据库管理系统(RDBMS),在企业级应用中扮演着至关重要的角色。它们各自凭借独特的技术优势、强大的数据处理能力以及高度的可扩展性,支撑着从中小型企业到大型跨国公司的各类复杂业务需…

区块链学习03-空投篇

Hybrid 是与 以太坊 兼容的第 2 层区块链,集成了混合专家 (MoE) 框架,支持以即插即用的方式轻松创建和货币化 AI 代理。该平台旨在提高区块链应用程序中数据的完整性和可用性,支持跨各个行业开发和部署 AI 驱动的解决方案。 Hybrid 正在为其…

服务器重启后jenkins任务内容不见了,并且新建任务也不见了

服务器centos7.4 背景:服务器异常重启后,jenkins上面的任务只剩下一些前端项目,后端的任务都不展示了,jenkins版本是Jenkins 2.346.3 解决方案:根据显示,jenkins很多的插件引用失败,显示需要升…

ModuleNotFoundError: No module named ‘h5py‘

到 ModuleNotFoundError: No module named h5py 错误表明 Python 环境中没有安装 h5py 模块。h5py 是一个用于处理 HDF5 二进制数据格式的 Python 接口,广泛用于大规模存储和操纵数据。 解决方案:安装 h5py 要解决这个问题,你需要在你的 Py…

报错:ERROR_ No matching distribution found for gitpython_=3.1.30

版本不匹配 当前安装环境:python3.8 pytorch2.1.2 预估pytorch版本太高 重新安装环境:python3.9 pytorch1.9.1 问题得到解决 python和pytorch对应版本参考

mvn配置中repository和mirror的区别

文章目录 前言一、 repository二、 mirror三、 具体区别四、 使用场景总结 前言 平时在配置mvn仓库地址的时候,总是会百度一下,有时候文章让用repository配置,有时候用mirror,配置起来都能用,于是就不怎么在意他们的区…

EcmaScript6全新语法特性-----EcmaScript6(1)

age : 20,language : "Eng"}// 对象也可以用结构表达式来获取对应的值const { name,age,language} person;// 这样可以将我们获取的值name变成abc这个变量// const { name:abc,age,language} person;// 字符串拓展let str "Hello,vue";// 判断是否以xxx…

.idea文件夹里面iml文件有啥用

.idea文件夹和其中的.iml文件对于IntelliJ IDEA项目非常重要,它们共同构成了IDEA对项目理解的基础。让我们详细了解一下这两者的作用: .idea文件夹 .idea文件夹包含了IntelliJ IDEA项目的所有配置信息,包括但不限于: 编译器设置…

中考加油 医路护航有青海东大肛肠医院

中考临近,考生的健康成了家长最为关心的问题。科学饮食不但可以促进广大考生的身体在炎热季节中正常代谢,而且能够很好地提高他们的学习效率,改善他们迎考状态, 助力考生调整状态迎接考试,西宁市城西区青海东大肛肠医…

No module named ‘tvtk.custom.light‘

pip list numpy是2.0.0 mayavi报错: File "tvtk_classes/tvtk_helper.py", line 22, in get_module ModuleNotFoundError: No module named tvtk.custom.light 解决方法: pip install numpy1.26 mayavi 4.8.2 vtk 9.3.0

七人团购新体验:解锁数字时代购物新篇章

在数字化浪潮的推动下,购物体验正迈向新的里程碑。其中,七人团购模式以其独特的魅力和创新性,为消费者带来了前所未有的实惠与便利。现在,让我们一同探索这一新兴购物模式的运作机制与潜在价值,特别是针对一款标价599元…

宝塔面板一键迁移项目站点教程

此插件仅用于将当前机器数据迁移出去,数据接收机器无需安装此插件。 注意事项: 当前教程仅适用《宝塔一键迁移API版本》插件,版本号 >3.0。 推荐迁移面板版本 > 6.9.5,低版本迁移可能存在部分数据无法迁移成功。 面板版…

cube studio开源一站式机器学习平台:k3s部署cube-studio

全栈工程师开发手册 (作者:栾鹏) 一站式云原生机器学习平台 前言 开源地址:https://github.com/tencentmusic/cube-studio cube studio 腾讯开源的国内最热门的一站式机器学习mlops/大模型训练平台,支持多租户&…