三、在 Windows 上安装 Nginx
Windows 下也是下载官方提供的 zip 压缩包,解压即用。
1. 下载 Windows 版本
进入 https://nginx.org/en/download.html
同样选择 Stable version 下的 Windows 版本(一般以 .zip 结尾)。
下载后解压到一个路径不包含空格的文件夹,例如 C:\nginx。
2. 目录结构与 Linux 解压版一致
C:\nginx\
├── conf
├── html
├── logs
└── nginx.exe (可执行文件)
3. 启动 Nginx
打开 命令提示符(cmd)或 PowerShell,进入 nginx 目录:
cd C:\nginx
start nginx
或者直接双击 nginx.exe(会闪过一个黑框,正常)。
之后在任务管理器里可以看到两个 nginx.exe 进程(主进程和工作进程)。
4. 验证
打开浏览器访问 http://localhost (如果 80 端口没被占用),即可看到欢迎页。
如果 80 端口被 IIS 或其他程序占用,可以先停止它们,或者修改 Nginx 监听端口(后面会讲)。
5. Windows 下的常用命令
同样在 nginx 目录下执行:
nginx -s stop # 快速停止
nginx -s quit # 优雅停止
nginx -s reload # 重新加载配置
nginx -t # 检查配置文件语法
6. 将 Nginx 注册为 Windows 服务(可选)
默认直接运行的方式,重启电脑后 Nginx 不会自动启动。可以用工具 nssm 或者 WinSW 把它变成服务。
新手先不用管,手动启动即可。

常用技巧:
- 修改任何配置文件后,一定先用
-t检查语法,确认无误再reload。 - 如果
reload后发现没有生效,可以看日志logs/error.log排查。
五、Nginx 核心配置详解
配置文件默认位置:
Linux (yum):/etc/nginx/nginx.conf,通常还会包含 /etc/nginx/conf.d/*.conf
Linux (解压):~/nginx/conf/nginx.conf
Windows:C:\nginx\conf\nginx.conf
我们以解压版的 nginx.conf 为例子,逐段解释。
5.1 全局块与 events 块
# 指定工作进程数,一般设为 CPU 核心数或 auto
worker_processes 1;
events {
# 每个工作进程的最大并发连接数
worker_connections 1024;
}
worker_processes:Nginx 会启动多少个工作进程,配合多核 CPU 提升性能。auto表示自动检测。worker_connections:每个进程能同时处理的连接数,决定了 Nginx 的并发能力
5.2 http 块
http 块里放的是网站相关的所有配置,比如虚拟主机、反向代理。
http {
# 引入 MIME 类型映射表
include mime.types;
default_type application/octet-stream;
# 日志格式与路径
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 logs/access.log main;
# 高效文件传输模式
sendfile on;
# 长连接超时时间
keepalive_timeout 65;
# 引入其他配置文件
include conf.d/*.conf; # 很多 Linux 发行版会从 conf.d 目录加载
# 或者直接在这个文件里写 server 块
}
5.3 server 块(虚拟主机)
一个 server 块就是一个网站。可以根据不同的 域名 或 端口 区分。
server {
listen 80; # 监听 80 端口
server_name www.example.com; # 绑定域名,多个用空格分隔
# 网站根目录
root /var/www/html; # Linux 典型路径,Windows 可改为 C:/www/html
index index.html index.htm; # 默认首页文件
# 访问日志独立存放(可选)
access_log logs/example.access.log main;
error_log logs/example.error.log;
# location 块定义不同 URL 的处理方式
location / {
try_files $uri $uri/ =404; # 先找文件,再找目录,都没有返回404
}
}
listen:指定 IP 和端口,80 是 HTTP 默认。
server_name:当浏览器请求的域名匹配这个值时,就会使用这个 server 块。如果都不匹配,Nginx 会选第一个 server 或带有 default_server 的。
root:网页文件存放的文件夹路径。
index:如果访问目录,默认显示哪个文件。
5.4 location 块详解
location 根据 URL 路径(URI)决定怎么处理请求。
常用修饰符:
= /path 精确匹配,优先级最高
~ \.php$ 区分大小写的正则匹配
~* \.jpg$ 不区分大小写的正则
^~ /images/ 前缀匹配,且匹配后不再检查正则
无修饰符 / 普通前缀匹配,优先级低