Nginx 详解 Part1 — 安装/命令/配置结构/IO模型/优化参数/日志

来源:raw/day41 nginx详解part1.md — 林海峰 Nginx 课程第一部分 主题:Nginx 核心特点、安装方式(yum vs 源码编译)、配置文件结构、epoll 网络 IO 模型、HTTP 性能优化参数、server 虚拟主机、location 匹配规则、访问日志与错误日志


结构总览

Nginx 特点与用途
安装方式(yum vs 源码编译)
文件分布
常用命令与平滑升级
配置结构(main/events/http/stream/server/location/upstream)
Events 配置与网络 IO 模型
  ├─ select / poll / epoll 对比
  └─ 并发量计算 worker_processes × worker_connections
HTTP 核心优化参数
  ├─ sendfile(零拷贝)
  ├─ tcp_nopush / tcp_nodelay
  ├─ keepalive_timeout
  ├─ open_file_cache
  └─ gzip 压缩
Server 虚拟主机配置
Location 匹配规则
日志配置(log_format / access_log / error_log / logrotate)

关键要点

Yum 安装 vs 源码编译安装:

对比项Yum 安装源码安装
速度慢(需编译)
定制化有限可定制编译参数
文件位置分散在系统目录集中在指定目录
适用场景快速部署、测试生产环境、定制需求

网络 IO 模型: Nginx 采用 epoll 异步非阻塞事件驱动模型,每个 IO 绑定回调事件,数据到达时主动触发通知,避免遍历所有连接。select 遍历所有连接效率随连接数增长而下降。并发量上限 = worker_processes × worker_connections

sendfile 零拷贝: 传统方式(硬盘→内核→用户态→内核→网卡)vs sendfile(硬盘→内核→网卡),绕过用户态减少拷贝次数。

日志配置: log_format 自定义格式(main/combined/json 等),access_log 指定路径/格式/缓冲区,error_log 控制日志级别(emerg→debug),通过 logrotate 实现日志轮转。


相关页面