ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Nginx部署基础流程

2026/8/12 15:16:19 拓冰建站 浏览量
Nginx部署基础流程 Nginx部署1. 核心概念1.1 什么是NginxNginx是一款轻量级的Web服务器可以理解为网站的“服务员”主要工作当有人在浏览器输入你的网址时Nginx 负责接待这个请求把网站的 HTML、图片、CSS 等文件发给访客静态网站把请求转交给后端的程序如 Node.js、Python、Java处理再把结果返回给访客反向代理核心优势快、内存占用低、高并发能力强是目前全球使用最广泛的 Web 服务器之一。1.2 正向代理 VS 反向代理正向代理类似于“代购”举例介绍你客户端想访问国外网站但直接访问不了你找一个代理服务器VPN让它帮你去访问再把内容转给你特点客户端知道代理的存在服务端只知道代理的地址正向代理代理的是客户端反向代理类似于“前台接待”举例介绍顾客访客去一家大餐厅只面对前台接待员Nginx接待员根据顾客需求把订单转给后厨炒菜、或让吧台做饮料顾客根本不知道后面有几位厨师、几个吧台只知道找前台就行特点客户端以为前台就是全部后台服务器被隐藏和保护起来反向代理代理的是服务端Nginx 最常用的角色就是反向代理它挡在最前面统一接收所有访客请求再分发给后端应用。1.3 什么是端口一台服务器可以同时运行很多服务端口用于区分不同服务。如果把服务器比作一栋大楼IP 地址是楼号端口Port就是房间号80 端口HTTP 协议的默认房间普通网页443 端口HTTPS 协议的默认房间加密网页3000/8080 等通常是后端应用程序运行的房间Nginx 默认守在 80 和 443 门口访客不用指定房间号就能找到它。1.4 什么是防火墙服务器的防火墙就像大楼的保安默认情况下谁也不许进。你需要告诉保安“让找 80 号和 443 号房间的人进去”外部访客才能访问你的网站。1.5 什么是静态网站和动态网站静态网站网页内容是固定的 HTML 文件Nginx 直接读取硬盘上的文件发给访客即可。动态网站内容需要实时计算如查询数据库、用户登录状态需要后端程序处理。Nginx 作为反向代理把请求交给后端程序再把结果返回。2. 部署步骤2.1 安装Nginxsudo apt updatesudo apt install nginxapt 是 Linux 的包管理器它会从官方软件源下载 Nginx 并自动安装。安装过程中会自动创建运行用户如 www-data一个低权限的系统用户为了安全默认网站目录/var/www/html放网页文件的地方配置目录/etc/nginx放各种设置文件的地方系统服务让 Nginx 能被开机启动和重启管理2.2 启动并设置开机自启sudo systemctl start nginx sudo systemctl enable nginx作用 让 Nginx 现在就开始工作并且服务器重启后自动恢复运行。systemctl 是 Linux 用来管理服务的工具。服务就是后台持续运行的程序。start立即启动 Nginx。启动后Nginx 会创建一个主进程master和多个工作进程worker。主进程负责管理worker 进程负责实际接待访客。enable把 Nginx 加入开机启动列表启动后在浏览器输入服务器的 IP 地址如果看到 “Welcome to nginx!” 页面说明安装成功。2.3 配置防火墙放行 HTTP/HTTPSsudo ufw allow Nginx Full # 或单独放行 sudo ufw allow 80/tcp sudo ufw allow 443/tcp作用让外部用户能通过网络访问你的网站。2.4 创建网站配置文件sudo nano /etc/nginx/sites-available/myapp写入server { listen 80; server_name example.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }作用告诉 Nginx“当有人访问example.com 时你应该怎么处理”。server { … }一个虚拟主机块。你可以在一台服务器上托管多个网站每个网站用一个 server 块。listen 80监听 80 端口HTTP 默认端口。server_name example.com域名匹配。当访客的请求是 example.com 时Nginx 使用这个配置块处理。如果输入的是 IP 地址Nginx 会匹配第一个 listen 80 的 server 块。location / { … }路径匹配。/ 表示所有请求。proxy_pass http://127.0.0.1:3000这就是反向代理的核心命令。Nginx 自己不处理这个请求而是把请求转发给本机 3000 端口上运行的程序比如你的 Node.js 或 Python 应用等后端处理完后再把结果传回给访客。proxy_set_header转发请求时带上原始信息如访客的真实 IP否则后端只能看到 Nginx 的 IP。2.5 启用站点配置sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/作用让 Nginx 真正加载你刚写的配置。sites-available可用站点存放写好的所有配置文件相当于候选名单。sites-enabled已启用站点存放真正生效的配置相当于正式上岗名单。这样设计的原因方便管理。假设有10个网站的配置但是只想开其中3个那么可以使用软链接的方式把想开的3个挂到enabled想关闭的时候直接删除软链接即可非常方便。2.6 测试并重载配置sudo nginx -t sudo systemctl reload nginx作用确保配置没写错并且不停机就生效。nginx -tNginx 会先预检查你的配置文件。如果有语法错误比如少了个分号、括号没配对它会报错并拒绝生效避免把错误的配置应用到线上导致网站崩溃。reload重载Nginx 重新读取配置文件启动新的 worker 进程处理新请求同时让旧的 worker 进程处理完手头的请求后优雅退出。整个过程网站不会中断访客几乎感知不到。注意配置出错时千万不要用 restart重启因为重启会中断服务。先 nginx -t 确认无误再用 reload。2.7 部署应用文件sudo cp -r /path/to/your/dist/* /var/www/html/ # 或自定义根目录确保 Nginx 有读取权限作用把网页代码放到服务器上让 Nginx 能读取并发送给访客。Nginx 的 worker 进程以 www-data低权限用户身份运行这是为了防止黑客入侵后获得太高权限。因此网页文件必须对这个用户可读存放文件的目录必须对该用户可进入执行权限 x。如果权限不对Nginx 会返回 403 Forbidden禁止访问错误。