跳过正文
Background Image

后端部署第一步:Nginx 发布服务前的万全准备

·1594 字·4 分钟
Abanana
作者
Abanana
目录

后端部署第一步:Nginx 发布服务前的准备工作
#

你是不是刚刚用 Java、Python 或 Go 写出了第一个后端程序?它在本地跑得飞快,通过 localhost:8080 就能访问,功能也都挺顺畅。接下来,自然而然会冒出一个念头:“我要怎样才能让别人也能访问到它?”

把一个后端服务从本地搬到公网,其实没有想象中复杂。本文不涉及深奥的配置,而是带你先把部署前的关键步骤和必备知识捋清楚。等地基打牢,后续配置就水到渠成。


为什么需要 Nginx?
#

想象一下,一家公司有很多部门:技术部、财务部、人事部。如果没有前台,客户走进公司就得自己乱逛,不仅效率低,还可能跑到不该去的地方。

前台的作用就是先接待所有来访的人,再把他们送到正确的部门。

在部署环境里:

  • 你的 后端服务 就是各个部门(可能分别跑在 80805000 端口)。
  • 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 是后端服务的门面,专业、高效、又可靠。


内网和公网:两个不同的世界
#

在本地调试时,你访问的是 localhost127.0.0.1,这个地址只在你自己电脑上有效,别人根本连不上。

如果想让所有人都能访问,就必须把服务部署到一台有 公网 IP 的机器上。这就像房子的门牌号:只有在全球唯一的地址,别人才能找到你。

所以我们的目标就是:用一台有公网 IP 的服务器跑 Nginx,把外部请求转发给只在内网可见的后端服务。


部署前需要准备什么?
#

在正式上路之前,你得先备齐工具。简单梳理一下:

1. 一台云服务器
#

阿里云腾讯云等平台买一台带公网 IP 的轻量服务器就行,新手入门用 1 核 CPU + 1~2G 内存的配置完全够用。

2. Linux 系统(推荐 Ubuntu)
#

服务器也需要操作系统。Linux 是绝对主流,其中 Ubuntu 对新手最友好,文档和教程都很多。买服务器时直接选 Ubuntu 20.0422.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 用于 HTTP
  • 443 用于 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 已经正常运行。

Welcome to Nginx


小结
#

到这里,你已经完成了从“本地孤岛”到“具备公网门面”的第一步:

  • 了解了 Nginx 的角色和作用
  • 理解了内网与公网的区别
  • 知道了云服务器、域名、DNS、防火墙的基本用法
  • 在服务器上亲手跑起来了 Nginx

下一篇文章,我们将动手配置 Nginx,把 localhost:8080 上的后端服务真正挂到你的域名上,正式对外开放。

相关文章

自信地深度思考
·2274 字·5 分钟
自信地深度思考 # DEEP THINK WITH CONFIDENCE
TriangleMix:无损且高效的用于预填充阶段的注意力模式
·2323 字·5 分钟
TriangleMix:无损且高效的用于预填充阶段的注意力模式 # TriangleMix: A Lossless and Efficient Attention Pattern for Long Context Prefilling
ASC:CoT压缩的激活引导 Training free
·1854 字·4 分钟
ASC:CoT 压缩的激活引导 Training free # Activation Steering for Chain-of-Thought Compression
SEAL:大语言模型的可操控推理 Traning Free
·2081 字·5 分钟
SEAL:大语言模型的可操控推理 Traning Free # SEAL: Steerable Reasoning Calibration of Large Language Models for Free
Hmm等Token影响模型推理能力
·2840 字·6 分钟
Hmm 等 Token 影响模型推理能力 # Demystifying Reasoning Dynamics with Mutual Information: Thinking Tokens are Information Peaks in LLM Reasoning
AdaCoT:通过强化学习实现的帕累托最优自适应链式思维触发器
·1472 字·3 分钟
AdaCoT:通过强化学习实现的帕累托最优自适应链式思维触发器 # AdaCoT: Pareto-Optimal Adaptive Chain-of-Thought Triggering via Reinforcement Learning
AdaptThink: 让模型决定是否思考
·1806 字·4 分钟
AdaptThink: 让模型决定是否思考 # AdaptThink: Reasoning Models Can Learn When to Think
SpecReason:使用推测性推理实现加速推理
·1229 字·3 分钟
SpecReason:使用推测性推理实现加速推理 # SpecReason: Fast and Accurate Inference-Time Compute via Speculative Reasoning
ThinkLess:一种无需训练的推理高效方法,用于减少推理冗余
·941 字·2 分钟
ThinkLess:一种无需训练的推理高效方法,用于减少推理冗余 # ThinkLess: A Training-Free Inference-Efficient Method for Reducing Reasoning Redundancy