Nginx 配置
type
status
date
slug
summary
tags
category
icon
password
一、全局配置
- 指定 Nginx 工作进程的用户身份(通常为
nobody或nginx)。
- ⚠️ 如果使用
root,安全风险较大。
- 指定工作进程数量。
- 推荐设置为:
worker_processes auto;(自动使用 CPU 核心数)- 或
CPU 核心数,部分场景可设置为核心数 × 2。
- 指定 Nginx 主进程 PID 文件路径。
二、日志配置
- 错误日志路径及级别。
- 日志级别(从低到高):
debug调试信息info一般信息notice提醒信息warn警告error错误crit严重错误alert警报emerg系统不可用
- ⚠️ 日志级别过低(如 debug)会占用硬盘和 I/O,生产环境建议
error或warn。
- 自定义日志格式:
$remote_addr:客户端 IP$remote_user:认证的用户$time_local:访问时间$request:请求信息(方法、路径、HTTP 协议)$status:响应状态码(200、404、502…)$body_bytes_sent:响应字节数$http_referer:请求来源(上一个页面)$http_user_agent:浏览器和操作系统$http_x_forwarded_for:代理转发的真实 IP
- 启用访问日志,使用
main格式。
三、事件模块
- use epoll:指定 I/O 多路复用模型(Linux 默认使用 epoll,BSD 系统用 kqueue)。
- worker_connections:每个 worker 最大连接数,决定并发量。
- 最大并发数 ≈
worker_processes × worker_connections。 - 实际并发数受内核参数限制,如
ulimit -n文件句柄数。
四、HTTP 模块
- mime.types:定义文件扩展名与 MIME 类型的对应关系。
- default_type:默认类型(二进制流),即未识别文件一律按下载处理。
日志
见上文 log_format。
文件传输优化
- sendfile on:开启零拷贝,提高传输效率。
- tcp_nopush:与 sendfile 配合,减少 TCP 包数量。
连接优化
- keepalive_timeout:长连接保持时间(秒),超过会断开。
- keepalive_requests:一个长连接能承载的最大请求数。
压缩
- 启用 Gzip 压缩,减少带宽。
- ⚠️ 静态资源通常交由 CDN 缓存,可以在 CDN 层开启压缩。
五、虚拟主机(server)
- listen:监听端口。
- server_name:主机名(域名)。
- location /:匹配所有请求,返回默认页面。
- root:站点根目录。
- index:默认首页文件。
六、虚拟主机类型
- 基于名称:不同
server_name共享同一 IP(常见方式)。
- 基于 IP 地址:不同虚拟主机绑定不同 IP。
七、常用操作
- 创建 Nginx 安装目录。
八、补充知识点
- 并发计算公式
若
worker_processes=2,worker_connections=1024,最大并发 ≈ 2048。- 状态码常见解析
- 200:成功
- 301/302/304:重定向
- 403:无权限
- 404:未找到
- 500:服务器错误
- 502:网关错误(后端无响应)
- 503:服务不可用(资源不足/后端宕机)
- 日志调试技巧
- 开发调试时可开
info或debug - 生产环境推荐
error或warn
👉 总结:
Nginx 配置主要分为 全局 → 事件 → HTTP → Server → Location 五个层次。合理设置 worker 数量、连接数、日志级别和缓存策略,能显著提升性能与安全性。
九、Nginx 完整配置(附)
1、Nginx配置文件
2、虚拟主机类型
基于名称的[server_name]
基于IP地址的[不同的IP地址]
Loading...