后端部署第一步:Nginx 发布服务前的准备工作#
你是不是刚刚用 Java、Python 或 Go 写出了第一个后端程序?它在本地跑得飞快,通过
localhost:8080
就能访问,功能也都挺顺畅。接下来,自然而然会冒出一个念头:“我要怎样才能让别人也能访问到它?”
把一个后端服务从本地搬到公网,其实没有想象中复杂。本文不涉及深奥的配置,而是带你先把部署前的关键步骤和必备知识捋清楚。等地基打牢,后续配置就水到渠成。
为什么需要 Nginx?#
想象一下,一家公司有很多部门:技术部、财务部、人事部。如果没有前台,客户走进公司就得自己乱逛,不仅效率低,还可能跑到不该去的地方。
前台的作用就是先接待所有来访的人,再把他们送到正确的部门。
在部署环境里:
- 你的 后端服务 就是各个部门(可能分别跑在
8080
、5000
端口)。 - Nginx 就是前台。
- 用户的浏览器请求,就是来访的客户。
Nginx 接收来自公网的请求,再转发到对应的服务,这就是所谓的 反向代理。
graph TD A[用户浏览器访问你的网站] -->|HTTP 请求| B[Nginx(公网 IP)] B -->|转发到 8080端口| C[Java服务 #1] B -->|转发到 5000端口| D[Python服务 #2] C -->|响应数据| B D -->|响应数据| B B -->|响应返回给用户| A
为什么推荐用 Nginx?
- 用户只会接触到 Nginx,不会直接触碰到后端服务,更安全。
- 所有流量统一从 Nginx 入口进入,方便管理。
- 支持负载均衡,能把请求分发到多个后端实例。
- 处理静态文件的效率极高,比大多数后端框架要快。
一句话:Nginx 是后端服务的门面,专业、高效、又可靠。
内网和公网:两个不同的世界#
在本地调试时,你访问的是 localhost
或 127.0.0.1
,这个地址只在你自己电脑上有效,别人根本连不上。
如果想让所有人都能访问,就必须把服务部署到一台有 公网 IP 的机器上。这就像房子的门牌号:只有在全球唯一的地址,别人才能找到你。
所以我们的目标就是:用一台有公网 IP 的服务器跑 Nginx,把外部请求转发给只在内网可见的后端服务。
部署前需要准备什么?#
在正式上路之前,你得先备齐工具。简单梳理一下:
1. 一台云服务器#
去阿里云、腾讯云等平台买一台带公网 IP 的轻量服务器就行,新手入门用 1 核 CPU + 1~2G 内存的配置完全够用。
2. Linux 系统(推荐 Ubuntu)#
服务器也需要操作系统。Linux 是绝对主流,其中 Ubuntu 对新手最友好,文档和教程都很多。买服务器时直接选 Ubuntu 20.04
或 22.04
就好。
3. 域名和 DNS#
记住一长串 IP 地址不现实,域名就是更好记的“昵称”。当然,如果没有域名,其实用IP访问也是可以的。
如果你需要域名,那就去买个自己喜欢的域名(比如 my-app.com
),然后在域名管理后台添加一条 A
记录,指向你服务器的公网 IP。这样别人输入域名就能找到你的服务。
sequenceDiagram participant User as 用户浏览器 participant DNS as DNS服务器 participant Server as 你的云服务器 User->>DNS: 访问 my-app.com DNS-->>User: 返回 IP 地址(如 123.123.123.123) User->>Server: 向 123.123.123.123 发送 HTTP 请求 Server-->>User: 返回网页内容
4. 防火墙与安全组#
服务器默认不可能对外敞开所有大门。 只需开放最必要的端口:
22
用于远程登录(SSH)80
用于 HTTP443
用于 HTTPS
其他端口一律关掉,养成好习惯。
当然如果你的服务并不出名且你认为足够安全,直接关闭防火墙、放行全部安全组也并非不可。但是不建议这样做
在 Ubuntu 上安装 Nginx#
一切准备就绪后,登录到服务器,输入以下命令:
# 1. 更新软件包列表,确保我们能安装到最新的软件
sudo apt update
# 2. 安装 Nginx
sudo apt install nginx -y
# 3. 启动 Nginx 服务 (通常安装后会自动启动,这步是为确保)
sudo systemctl start nginx
# 4. 设置 Nginx 开机自启
sudo systemctl enable nginx
完成后,在浏览器里访问你服务器的公网 IP,如果看到 “Welcome to nginx!” 页面,就说明 Nginx 已经正常运行。
小结#
到这里,你已经完成了从“本地孤岛”到“具备公网门面”的第一步:
- 了解了 Nginx 的角色和作用
- 理解了内网与公网的区别
- 知道了云服务器、域名、DNS、防火墙的基本用法
- 在服务器上亲手跑起来了 Nginx
下一篇文章,我们将动手配置 Nginx,把 localhost:8080
上的后端服务真正挂到你的域名上,正式对外开放。