首页/新闻资讯/正文详情

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

发布时间:2026/11/3 18:16:55 来源:云帆数科 栏目:资讯中心
【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服务器详解》

相关推荐

xray与fofa联动(附脚本)
xray与fofa联动(附脚本)

/* 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:15:55

虚拟环境的配置/pytorch的安装/在Jupyter notebook 添加虚拟环境
虚拟环境的配置/pytorch的安装/在Jupyter notebook 添加虚拟环境

/* 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:15:55

2021年Java进阶总结
2021年Java进阶总结

/* 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:15:55

区域控制器架构设计:智能熔断、上集成与48V迁移的工程实践
区域控制器架构设计:智能熔断、上集成与48V迁移的工程实践

简介:这份2021年安波福域控制器白皮书面向汽车电子工程师、整车架构设计人员及智能网联方向的学习者,聚焦电子控制单元激增带来的线束复杂、I/O 膨胀与电气化功率需求演变等现实难题,系统阐述域控制器作为区域电源分配与数据连接枢纽的架构价… · 2026/11/3 20:15:47

CMT4522 GPIO应用手册:低功耗休眠唤醒与引脚配置避坑指南
CMT4522 GPIO应用手册:低功耗休眠唤醒与引脚配置避坑指南

简介:面向嵌入式硬件工程师与底层驱动开发者的CMT4522 GPIO应用笔记,聚焦GPIO工作模式与保护机制的工程落地,适合需要快速查阅寄存器行为、排查IO异常的中高级硬件人员。压缩包内为1份PDF文档,约612KB,内容涵盖特殊IO&… · 2026/11/3 20:15:47

HarmonyOS图像处理优化:高精度头像裁剪实践
HarmonyOS图像处理优化:高精度头像裁剪实践

1. HarmonyOS图像处理的技术背景与挑战HarmonyOS作为新一代智能终端操作系统,其图像处理能力直接关系到用户体验。在移动设备上实现高精度图像处理需要克服三大技术难点:内存限制、计算资源分配和实时性要求。与传统Android系统相比,HarmonyO… · 2026/11/3 20:15:47

模板错误消息优化:提升开发效率的关键技术
模板错误消息优化:提升开发效率的关键技术

1. 模板错误消息优化的核心价值 在各类软件系统和开发框架中,模板错误是最常见的报错类型之一。无论是前端模板引擎(如Jinja2、Thymeleaf)、文档模板(如Word/LaTeX),还是代码生成模板,当出现语法… · 2026/11/3 20:15:47

deepin 20 主力开发环境:选型、配置与排障实践
deepin 20 主力开发环境:选型、配置与排障实践

折腾开发环境这件事我有个不太主流的习惯:每换一次主力机,就顺手换一个发行版用上半年,把日常写代码、跑服务、调前端的那套流程重新走一遍。去年我把工作机的系统换成了deepin 20,一直用到现在,期间重构过两次工具链,也踩了不少只有长期当主力机用才会暴露的问题。这篇就聊聊把… · 2026/11/3 20:15:47

CodeBuddy:提升技术团队效能的智能协同平台
CodeBuddy:提升技术团队效能的智能协同平台

1. 项目概述:CodeBuddy的定位与核心价值 第一次听说CodeBuddy这个工具是在去年的一次技术沙龙上。当时团队正被多项目并行管理的混乱所困扰——需求文档散落在不同成员的硬盘里,代码版本频繁冲突,任务进度全靠微信群里的碎片化沟通。直到遇见… · 2026/11/3 20:14:46

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

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

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* 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 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* 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 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与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:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* 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:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的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:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

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

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* 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 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* 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 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码