【Nginx】nginx.conf文件结构与基础配置指令(上)

发布时间:2026/11/3 18:17:02

【Nginx】nginx.conf文件结构与基础配置指令(上) 文章目录一. nginx.conf文件的结构1. 作用域2. 各个块的作用2.1. 全局块2.2. events块2.3. http块2.4. server块2.5. location块二. nginx基础配置上1. 运行Nginx服务器的用户与组2. 允许生成的worker process数3. (进程)PID存放路径4. 错误日志的位置5. 引入其他nginx配置文件一. nginx.conf文件的结构默认的Nginx服务器配置文件都存放在安装目录conf中主配置文件名为nginx.conf如下是一个配置示例worker_processes1;#全局生效 events{worker_connections1024;#在events部分中生效}http{include mime.types;#以下指令在http部分中生效 default_type application/octet-stream;sendfile on;keepalive_timeout65;server{#以下指令在http的server部分中生效 listen80;server_name localhost;location/{#以下指令在http/server的location中生效 root html;index index.html index.htm;}error_page500502503504/50x.html;location/50x.html{root html;}}}nginx.conf一共由三部分组成分别为全局块、events块和http块。1. 作用域一般情况下高一级块中的指令可以作用于自身所在的块和此块包含的所有低层级块。如果某个指令在两个不同层级的块中同时出现则采用“就近原则”即以较低层级块中的配置为准。比如某指令同时出现在http全局块中和server块中并且配置不同则应该以server块中的配置为准。2. 各个块的作用2.1. 全局块全局块是从开始到events块之间的一部分内容主要设置一些影响Nginx服务器整体运行的配置指令这些指令的作用域是Nginx服务器全局。通常包括配置:运行Nginx服务器的用户组允许生成的worker process数Nginx进程PID存放路径日志的存放路径和类型配置文件引入等2.2. events块events块用于配置与事件处理相关的参数主要影响Nginx服务器与用户的网络连接例如并发连接数限制、连接超时等。典型的配置项包括是否开启对多worker process下的网络连接进行序列化是否允许同时接收多个网络连接选取哪种事件驱动模型处理连接请求use指定事件驱动模型如 epoll 或 kqueue每个worker process可以同时支持的最大连接数等这一部分的指令对Nginx服务器的性能影响较大在实际配置中应该根据实际情况灵活调整。2.3. http块Nginx服务器的主要配置块包含了大部分HTTP服务的相关配置。代理、缓存和日志定义等都可以放在这个模块中。在http全局块中配置的指令可以包括文件引入MIME-Type定义日志自定义是否使用sendfile传输文件连接超时时间单连接请求数上限2.4. server块server块和“虚拟主机”的概念有密切联系。虚拟主机的含义虚拟主机技术主要应用于HTTP、FTP及EMAIL等多项服务将一台服务器的某项或者全部服务内容逻辑划分为多个服务单位对外表现为多个服务器从而充分利用服务器硬件资源。从用户角度来看一台虚拟主机和一台独立的硬件主机是完全一样的。虚拟主机给nginx带来的能力在使用Nginx服务器提供Web服务时利用虚拟主机的技术就可以避免为每一个要运行的网站提供单独的Nginx服务器也无需为每个网站对应运行一组Nginx进程即在同一台服务器上只运行一组Nginx进程就可以运行多个网站。接着说server块的作用每一个http块都可以包含多个server块而每个server块就相当于一台虚拟主机它内部可有多台主机联合提供服务一起对外提供在逻辑上关系密切的一组服务或网站。作用域server块的作用域只在自己的块中起作用server块之间相互独立。常见配置在server全局块中最常见的两个配置项是本虚拟主机的监听端口本虚拟主机的名称或IP配置2.5. location块location块的主要作用是基于Nginx服务器接收到的请求路由例如 server_name/uri-string)对特定的请求进行处理。地址定向、数据缓存和应答控制等功能都是在这部分实现。二. nginx基础配置上1. 运行Nginx服务器的用户与组user user[group]■ user指定可以运行Nginx服务器的用户。 ■ group可选项指定可以运行Nginx服务器的用户组。实践只有被设置的用户或者用户组成员才有权限启动Nginx进程如果是其他用户test_user尝试启用Nginx进程将会报错nginx:[emerg]getpwnam(test_user)failed(2:No such file or directory)in/Nginx/conf/nginx.conf:2如果希望所有用户都可以启动Nginx进程有两种办法一是将此指令行注释掉#user[user][group];二是将用户和用户组设置为nobody user nobody nobody;注意在Nginx配置文件中每一条指令配置都必须以分号结束请不要忘记。2. 允许生成的worker process数本质上是设置nginx能够处理的并发数worker process实际上要受到来自软件本身、操作系统本身资源和能力、硬件设备如CPU和磁盘驱动器等的制约。语法格式为worker_processes number/auto;■ number指定Nginx进程最多可以产生的worker process数。■ auto设置此值Nginx进程将自动检测。实践将number改为3重启nginx可以看到Nginx服务器除了主进程master process之外还有已经三个worker process#psax|grep nginx8626?Ss0:00nginx:master process../sbin/nginx8627?S0:00nginx:worker process8628?S0:00nginx:worker process8629?S0:00nginx:worker process3. (进程)PID存放路径Nginx进程作为系统的守护进程运行我们需要在某文件中保存当前运行程序的主进程号。设置的语法格式为pid file;file指定存放路径和文件名称。默认将此文件存放在Nginx安装目录logs下名字为nginx.pid。path可以是绝对路径也可以是以Nginx安装目录为根目录的相对路径。比如要把nginx.pid放置到Nginx安装目录sbin下文件名为web_nginx则可以使用以下配置pid sbin/web_nginx注意在指定[path]的时候一定要包括文件名如果只设置了路径没有设置文件名则会报以下错误nginx: [emerg] open() “/Nginx/logs/” failed (21: Is a directory)。4. 错误日志的位置在全局块、http块和server块中都可以对Nginx服务器的日志进行相关配置。这里介绍全局块下日志的存放配置后两种情况的配置基本相同只是作用域不同。使用的指令是error_log其语法结构是error_log file|stderr[debug|info|notice|warn|error|crit|alert|emerg];日志可以输出到某一个文件中或者输出到标准错误输出stderr日志的级别是可选项由低到高分为debug…。当然设置某一级别后比这一级别高的日志也会被记录。例子error_log logs/error.log error;注意运行Nginx进程的用户要对日志文件有写权限否则在启动Nginx进程的时候会出现以下报错信息nginx:[alert]:could not open error log file:open()/Nginx/logs/error.logfailed(13:Permission denied)此指令可以在全局块、http块、server块以及location块中配置。5. 引入其他nginx配置文件在Nginx配置文件中include指令用于引入其他配置文件或片段。这允许你将配置文件模块化并将其组织成更容易管理和维护的部分。语法如下include file; file表示要包含的文件路径。可以是相对路径或绝对路径。注意Nginx进程的用户同样对其要具有写权限并且符合Nginx配置文件规定的相关语法和结构。此指令可以放在配置文件的任意地方。配置实例1.包含单个文件http{include/etc/nginx/conf.d/mysite.conf;}2.包含一个目录中的所有已conf结尾的文件如nginx.conf对其他组件配置引入 http{...#Load modular configuration files from the/etc/nginx/conf.d directory.#See http://nginx.org/en/docs/ngx_core_module.html#include#formore information.include/etc/nginx/conf.d/*.conf; ... }3.分离不同的配置段可以将不同的配置段存储在单独的文件中然后使用include命令将它们组合起来。http{include/etc/nginx/conf.d/headers.conf;include/etc/nginx/conf.d/locations.conf;include/etc/nginx/conf.d/upstreams.conf;}如上将headers.conf、locations.conf和upstreams.conf文件中的配置将被包含在主配置文件中。参考《Nginx高性能Web服务器详解》
延伸阅读

更多相关文章

2026/11/3 18:17:02

【数据仓库基础(三)】抽取-转换-装载

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 18:12:01

基于MAX14431与PIC32的SPI隔离通信设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 18:12:01

工业级隔离SPI设计实战:MAX14431与Kinetis KV4x选型布线调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 19:12:19

XHS-Downloader 使用教程:3 分钟跑通小红书无水印下载

XHS-Downloader 使用教程:3 分钟跑通小红书无水印下载 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具 项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader XHS-Downloader 是一款免费…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32实战:基于MAX14431数字隔离器的SPI隔离通信方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

工业SPI隔离通信设计:MAX14431BAEE+与STM32L4A6RG实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32+NRF24L01无线抢答器:硬件设计、通信协议与低功耗实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑