导语:装了 Nginx 后你的网站"前台"就开张了——它接客、分流、发传单、把关卡。配置文件让 AI 帮你写,但你要知道每个"按钮"在干嘛。
你的网站跑起来了:代码在服务器上,数据库也连上了。但用户访问 http://你的域名,是谁接待的?就是 Nginx。
Nginx 在项目里的角色:前台接待(反向代理)。没有它,用户的请求会直接闯进你代码的"后厨",乱成一团。
一、Nginx 是干嘛的:前台接待
想象你的网站是一家餐厅:
- Nginx = 前台:站在门口,接客、带位、递菜单、收快递。
- 你的后端程序(Python/Node 等)= 后厨:专心做菜(处理业务逻辑),不管门口的事。
- 静态文件(图片、CSS、JS)= 传单/菜单:前台直接发,不用麻烦后厨。
Nginx 具体帮你做四件事:
| 事 | 大白话 | 术语 |
|---|---|---|
| 接客 | 监听 80/443 端口,所有访问它先收 | 监听端口 |
| 分流 | 把请求转给后厨(你的后端程序) | 反向代理 |
| 发传单 | 图片、CSS、JS 直接返回,不打扰后端 | 静态文件服务 |
| 把关卡 | 加 HTTPS、负载均衡、限流 | 安全 / 分流 |
二、四件事拆开看
1. 接客(监听端口):Nginx 站在门口(80 端口),所有用户访问先到它手里。你访问网站时,浏览器连的是 80/443 端口——那就是 Nginx 的岗位。
2. 分流(反向代理):你的后端程序跑在服务器某个内部端口(比如 8000),Nginx 把请求转发过去。用户永远不知道后厨在哪,只跟前台打交道——这就是"反向代理"。
3. 发传单(静态文件):图片、CSS、JS 这种"不用现做"的东西,Nginx 直接从磁盘拿给用户,根本不进后厨——后端程序轻松一大截,这也是 Nginx 快的秘密。
4. 把关卡(HTTPS):第 09 篇配的 SSL 证书,就是挂在 Nginx 上——它负责把明文 HTTP 升级成加密 HTTPS,用户和网站之间的通信才安全。
三、配置文件长啥样(看懂每一段)
Nginx 的配置就是一个文本文件(默认 /etc/nginx/nginx.conf 或 conf.d/ 下的站点配置),让 AI 帮你写没问题,但你要能看懂结构。核心就两个"块":
server {
listen 80; # 前台岗位:站在 80 端口
server_name 你的域名.com; # 只接待这个域名
location / {
proxy_pass http://127.0.0.1:8000; # 一般请求→转给后厨(8000 端口)
}
location /static/ {
alias /var/www/你的项目/static/; # 静态文件→直接发传单,不进后厨
}
}
你要看懂的只有三行:
listen:站在哪个端口接客。proxy_pass:把请求转发给谁(你的后端程序)。location:按路径分流——/static/走静态,其它走后端。
经验:让 AI 生成配置时,把这三行问清楚:"这段配置里,请求是怎么分流的?"——你看得懂分流,就掌握了 Nginx 的命脉。
四、改完配置怎么生效
改配置最怕"改了没效果"。记住两个命令:
sudo nginx -t # 第一件事:检查配置有没有语法错误
sudo systemctl reload nginx # 方式一:systemd 平滑重载(Ubuntu 等系统默认推荐)
sudo nginx -s reload # 方式二:Nginx 自带信号重载(老牌通用,效果相同)
经验:
- 先测再重载:
nginx -t报错就别reload,改好了再说——这是标准流程。 - 两种 reload 效果一样:
systemctl reload nginx是 systemd 的装法,nginx -s reload是 Nginx 自带的信号方式,都会平滑生效不中断服务。记一个顺手用就行(Ubuntu 默认装法用systemctl)。 - 用
reload不是restart:reload 平滑生效不中断服务;restart 是重启(会闪断)。日常改配置用 reload。 - 改配置前先备份:
cp 配置 配置.bak,改坏了能还原(第 14 篇就说过)。
五、避坑清单
- 改完没生效:八成是忘了
nginx -t+systemctl reload——改完必须走这两步。 - 端口被占用:报
80 port already in use,说明服务器上还有别的程序占着 80(比如 Apache)——先停掉旧的,再让 Nginx 上岗。 - 静态文件 404:
alias/root路径写错(Linux 路径不熟就ls确认),或者权限不对(文件 Nginx 用户读不到)。 - 别让 Nginx 直接跑代码:Nginx 不会执行你的 Python/Node——它是前台,永远只转发,不"做菜"。做菜的是后厨(你的后端程序)。
- HTTPS 配了还跳 HTTP:检查证书路径和 443 监听是否都配好;配好后浏览器地址栏有锁图标才算成功。
总结
- Nginx = 前台接待(反向代理):接客(监听端口)、分流(转发后端)、发传单(静态文件)、把关卡(HTTPS)。
- 配置文件核心就三行:
listen(站哪)、proxy_pass(转发给谁)、location(按路径分流)。 - 改配置标准动作:备份 →
nginx -t测试 →systemctl reload生效。 - 避坑四条:改完要 reload、端口被占先停旧的、404 先查路径和权限、Nginx 只转发不跑代码。
10 分钟小任务:SSH 登录服务器,跑 nginx -t 看看当前配置是否正常;再打开 Nginx 配置文件(/etc/nginx/nginx.conf 或站点配置),找找 listen、proxy_pass、location 三行在哪——"看懂前台的工作单"。下一篇,我们解决"在我电脑上能跑"的问题:Docker。
下一篇:Docker 不是虚拟机,是给你的项目打包个行李箱。
