Nginx的核心核心在于配置文件默认安装后的nginx.conf是服务的总控配置文件决定了Nginx的进程运行、日志记录、网络连接、请求处理、站点映射等所有核心能力。很多新手运维人员初次接触Nginx时面对满屏配置参数无从下手本文将基于Rocky Linux系统默认的纯净版Nginx主配置过滤注释、空行后的完整配置逐行拆解每一条配置的作用、含义与生产场景意义帮大家彻底吃透Nginx主配置文件的核心逻辑。先附上本次解析的纯净版主配置文件[rootrocky nginx ]# grep -Ev #|^$ nginx.conf user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /run/nginx.pid; include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; keepalive_timeout 65; types_hash_max_size 4096; include /etc/nginx/mime.types; default_type application/octet-stream; include /etc/nginx/conf.d/*.conf; server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html; include /etc/nginx/default.d/*.conf; } } ​Nginx配置文件整体分为四大核心模块全局配置块、events连接块、http协议块、server虚拟主机块下面按模块逐行深度解析一、全局配置块全局生效控制Nginx整体进程全局块配置不属于任何花括号区域作用于整个Nginx服务主要定义进程运行用户、进程数量、日志、PID文件、模块引入等基础全局属性。1 user nginx;定义Nginx工作进程的运行用户安装二进制程序默认使用系统自带的nginx普通用户。[rootrocky nginx ]# netstat -tulnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 8452/nginx: master ​生产意义Nginx禁止以root用户运行工作进程通过普通用户降权有效避免权限过高引发的安全风险保障服务器安全。无需手动修改默认配置即可满足绝大多数场景。2. worker_processes auto;指定Nginx的工作进程数量auto为自适应模式Nginx会自动识别服务器CPU核心数匹配最优进程数核心数进程数。[rootrocky nginx ]# nproc 2 --- /etc/nginx [rootrocky nginx ]# grep worker_processes nginx.conf worker_processes auto; --- /etc/nginx [rootrocky nginx ]# pstree -p |grep nginx |-nginx(8452)--nginx(8453) | -nginx(8454)生产意义Nginx是多进程模型主进程负责管理工作进程负责处理实际用户请求。自适应配置可最大化利用CPU性能避免进程过多造成资源抢占或进程过少导致并发能力不足。3. error_log /var/log/nginx/error.log notice;定义Nginx错误日志的存储路径和日志级别。日志路径/var/log/nginx/error.log所有服务报错、异常信息都会写入该文件日志级别notice属于中等日志级别仅记录重要提示、异常、错误信息不会记录冗余调试日志。常用日志级别优先级从低到高debug info notice warn error crit生产环境一般使用notice或warn兼顾排错需求和磁盘空间占用。[rootrocky nginx ]# grep error_log nginx.conf error_log /var/log/nginx/error.log notice; --- /etc/nginx [rootrocky nginx ]# cat /var/log/nginx/error.log 2026/07/01 19:34:46 [notice] 8450#8450: using the epoll event method 2026/07/01 19:34:46 [notice] 8450#8450: nginx/1.26.3 2026/07/01 19:34:46 [notice] 8450#8450: OS: Linux 6.12.0-211.22.1.el10_2.x86_64 2026/07/01 19:34:46 [notice] 8450#8450: getrlimit(RLIMIT_NOFILE): 1024:524288 2026/07/01 19:34:46 [notice] 8452#8452: start worker processes ​4. pid /run/nginx.pid;指定Nginx主进程PID文件的存储路径。该文件仅存储Nginx主进程的进程ID[rootrocky nginx ]# grep pid nginx.conf pid /run/nginx.pid; --- /etc/nginx [rootrocky nginx ]# cat /run/nginx.pid 8452 --- /etc/nginx [rootrocky nginx ]# pstree -p |grep nginx.conf --- /etc/nginx [rootrocky nginx ]# pstree -p |grep nginx |-nginx(8452)--nginx(8453) | -nginx(8454) ​系统通过该文件实现Nginx的启动、停止、重启、重载配置等操作是服务进程管理的核心文件禁止删除和修改。5. include /usr/share/nginx/modules/*.conf;批量引入Nginx官方扩展模块的配置文件加载/usr/share/nginx/modules/目录下所有后缀为.conf的模块配置。生产环境Nginx的第三方模块、功能扩展模块配置统一存放于此通过全局引入实现模块一键生效无需手动写入主配置文件保证主配置简洁易维护。[rootrocky nginx ]# grep include /usr/share/ nginx.conf include /usr/share/nginx/modules/*.conf; --- /etc/nginx [rootrocky nginx ]# ls /usr/share/nginx/modules/ --- /etc/nginx [rootrocky nginx ]# ​二、events连接块控制网络并发连接属性events块是Nginx并发能力的核心配置专门定义客户端与服务器的网络连接规则直接决定Nginx的最大并发承载能力。events { worker_connections 1024; }worker_connections 1024;定义单个Nginx工作进程支持的最大并发连接数默认值1024。整台服务器的最大并发数 工作进程数 × 单个进程最大连接数。默认配置下多核服务器可支持数千并发连接完全满足小型网站、测试环境、企业内部服务的使用需求。高并发生产场景可按需调大至10240等数值。三、http协议块核心业务配置管控所有HTTP请求http块是Nginx最核心的配置区域管控所有HTTP/HTTPS请求的处理规则包含日志格式、文件传输、超时时间、资源类型、子配置引入、虚拟主机等所有业务配置。1. log_format main 日志格式定义log_format main $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for;自定义名为main的访问日志格式定义每条访问日志需要记录的字段是运维排查请求异常、统计访问量的核心依据各参数含义如下$remote_addr客户端真实IP地址$remote_user客户端认证用户名无认证则为空$time_local服务器本地请求时间$request客户端请求方式、请求地址、HTTP协议版本$status请求响应状态码200、404、500等$body_bytes_sent响应客户端的文件字节大小$http_referer请求来源页面防盗链、流量统计核心参数$http_user_agent客户端设备、浏览器标识$http_x_forwarded_for代理转发后的真实客户端IP反向代理场景必备。2. access_log /var/log/nginx/access.log main;指定访问日志存储路径与调用格式。表示将所有客户端正常访问请求按照上方定义的main格式写入/var/log/nginx/access.log文件。3. sendfile on;开启Linux系统sendfile零拷贝传输机制。默认关闭生产环境默认开启。作用跳过用户态与内核态的数据拷贝流程直接在内核态完成文件传输大幅提升静态文件图片、视频、静态页面的传输效率降低CPU资源消耗。4. tcp_nopush on;开启TCP推送优化功能需配合sendfile on使用。作用Nginx不会零散发送数据包会将多个小数据包合并为一个完整数据包统一推送减少网络IO次数提升网络传输吞吐量优化高并发场景下的请求响应速度。5. keepalive_timeout 65;定义HTTP长连接超时时间单位秒。含义客户端与服务器建立连接后65秒内无新请求则自动断开连接。长连接可避免频繁建立、断开TCP连接的资源消耗65秒是官方最优默认值适配绝大多数网站业务。6. types_hash_max_size 4096;设置MIME类型哈希表的最大存储空间默认4096。作用Nginx会将文件后缀与资源类型的映射关系存入哈希表该参数用于优化哈希查询效率加快文件资源类型匹配速度提升请求处理效率。7. include /etc/nginx/mime.types;引入MIME资源类型配置文件。该文件定义了数百种文件后缀对应的HTTP资源类型如html、jpg、png、js、css等让浏览器可以正确识别、解析服务器返回的文件资源。8. default_type application/octet-stream;定义默认资源类型。当请求的文件后缀无法匹配MIME类型时默认以二进制流形式返回给客户端浏览器会自动触发文件下载避免未知文件直接乱码展示。9. include /etc/nginx/conf.d/*.conf;批量引入conf.d目录下所有站点配置文件这是Nginx多站点管理的核心设计。生产规范主配置文件仅保留全局通用配置所有独立站点的server虚拟主机配置全部拆分存放于conf.d目录实现配置解耦便于多站点维护、迁移和排查问题。四、server虚拟主机块站点具体访问配置server块是单个网站站点的核心配置用于定义站点的监听端口、域名、网站根目录等访问规则当前为Nginx默认的默认站点配置。server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html; include /etc/nginx/default.d/*.conf; }1. listen 80;监听IPv4协议的80端口80是HTTP协议默认端口客户端通过http://IP即可直接访问站点无需携带端口号。2. listen [::]:80;监听IPv6协议的80端口开启IPv6访问支持适配当前主流的双栈网络环境让IPv6用户也能正常访问网站。3. server_name _;定义站点绑定的域名_为默认匹配符代表默认虚拟主机。作用当客户端访问的域名未匹配到服务器上任何自定义站点时全部由该默认站点响应通常用于拦截无效域名请求、展示默认首页。4. root /usr/share/nginx/html;定义网站根目录即站点静态资源的存放路径。客户端访问网站时Nginx会默认从该目录下读取index.html默认首页文件并返回。5. include /etc/nginx/default.d/*.conf;引入默认站点的扩展配置文件该目录下的配置会作用于默认站点用于补充默认页面的跳转、错误页面定制、缓存规则等拓展能力。五、配置整体总结与运维建议1. 配置层级清晰Nginx主配置严格遵循「全局→连接→协议→站点」的层级逻辑由宏观全局规则逐步细化到单个站点访问规则结构清晰、各司其职2. 模块化设计通过大量include指令拆分配置避免主配置文件臃肿符合生产运维规范化要求便于多站点、多模块管理3. 默认配置适配性强官方默认配置兼顾性能与稳定性小型业务可直接使用中大型业务仅需针对性优化并发数、超时时间、日志级别、缓存规则等参数4. 运维核心习惯修改配置后务必执行nginx -t校验配置语法无误后执行nginx -s reload平滑重载配置避免服务中断.