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中获取时间戳很简单,但是怎么把一个时间戳转换为我们平时…

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

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

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

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

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

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

区块链学习03-空投篇

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

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项目的所有配置信息,包括但不限于: 编译器设置…

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

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

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

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

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

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

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

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

解决Element-ui的el-table固定列后出现的表格错位问题

问题情况大致是这样的: 查看官网 解决办法:

RubyMine 2024 mac/win版:智慧编程,从心出发

JetBrains RubyMine 2024 是一款专为Ruby和Rails开发者打造的高效集成开发环境(IDE)。它凭借其卓越的性能和丰富的功能,帮助开发者在Ruby和Rails的开发过程中提升效率,减少错误。 RubyMine 2024 mac/win版获取 RubyMine 2024 提供了强大的代码编辑功能&…

科东软件@你逛华南工博会,展会亮点给你整理好了

随着工业AI、5G、边缘计算等前沿技术的迅速发展,未来工业正朝着大规模智能生产和柔性生产的方向稳步迈进。东土科技紧跟产业发展潮流,结合自身在工业底层控制技术、网络技术等方面的深厚积累,积极创新。 亮点带你看 鸿道操作系统&#xff0…

VMware Workstation安装Windows Server2019系统详细操作步骤

虚拟机版本 VMware Workstation 16 Prp 16.2.5 build-20904516 实现操作 创建虚拟机 创建新的虚拟机 自定义->下一步 默认即可,下一步 稍后安装操作系统->下一步 按照图下所示选择好系统->下一步 设置好虚拟机名称和位置->下一步 默认即可&#xff0…

5个wordpress成品站主题

Sora索啦高端制造业wordpress主题 红色高端制造业wordpress主题,适合外贸企业出海建独立站的wordpress模板。 https://www.jianzhanpress.com/?p5885 Polar钋啦wordpress外贸主题 制造业wordpress网站模板,适合生产制造企业官方网站使用的wordpress外…

mock-前端数据模拟

简介 数据模拟不是开发流程中的必要一环 Json-server 简介: json-server 是一个简单的 Node.js 服务端应用程序,这个工具的主要作用是提供一个模拟的后端服务,可以在前端开发过程中独立于后端进行简单工作。 使用: 1、 安装…