返回知识库

服务器 · 网络与入口

反向代理Reverse Proxy

反向代理站在应用前面:外面只连它的 443,它按域名转给本机端口;502 表示它后面没人应答。HTTPS 证书也装在它这里,Let's Encrypt 90 天到期,必须自动续期并演练过。

一个域名正常、一个 502,再快进三个月看证书

浏览器只连得到 Nginx。先访问两个域名,结果会落在浏览器、路由表和本机服务列表上;修好路由要先检查语法再重载。然后在证书时间轴上快进 90 天,看续期没配好时浏览器会怎样。

任务:让 app.example.com 和 api.example.com 都能用 HTTPS 打开,并且三个月后也不会因为证书过期挂掉。外面只能连到 Nginx(443),两个服务只听本机。

● 安全选择要访问的地址

点上面的地址,看请求经 Nginx 落到哪里。

Nginx 路由表 · 监听 443运行中

  • app.example.com已生效
  • api.example.com已生效

本机在听的服务

  • 127.0.0.1:3000网站应用 · 在跑
  • 127.0.0.1:4000接口服务 · 在跑

证书时间轴 · Let's Encrypt(装在 Nginx 上)

剩 12 天 · 已进入续期窗口

签发(有效期 90 天)已过去 0 天到期

原因还没出现。下一步:先访问 app,再访问 api,看哪个出错。

知识点:前台、转接、证书

面板里已经演过,这里只给命名。

  • 反向代理站在应用前面接所有外部请求:外面只认 Nginx 的 443,它按域名把请求转给本机端口;应用端口只听 127.0.0.1(见「端口」)。
  • 502 Bad Gateway = Nginx 活着,但它要转去的地方没人应答:端口写错、应用没启动或崩了。先对照路由表和本机服务列表。
  • 改配置先检查语法(nginx -t)再重载;检查失败就保留旧配置。跳过检查直接重启,一处写错就整站下线。
  • HTTPS 证书装在 Nginx 这里(原理见「HTTPS」)。Let's Encrypt 证书目前 90 天有效,官方还计划逐步缩短,所以只能靠自动续期。
  • 自动续期要演练过才算数:常见的静默失败是续期验证要从外网访问 80 端口,而 80 被安全组或防火墙拦了。

什么时候用、怎么用

自己管服务器、要用域名和 HTTPS 对外时,就需要它。

  • 信号:一台机器上跑了网站和接口、想都用 443 和域名访问;或看到 502 Bad Gateway、浏览器提示证书过期。
  • 告诉 AI 一张对应表:哪个域名 → 本机哪个端口;HTTP 自动跳到 HTTPS。
  • 要求 AI 申请 Let's Encrypt 证书、开启自动续期,并把续期演练的输出给你看。
  • 验收:两个域名都能用 https 打开;故意访问一个没配的域名不会串到别的站;演练通过;AI 每次改配置都先报告检查结果再重载。
  • 不适用:用托管平台时域名和证书由平台管;前面挂了 CDN 时证书可能在 CDN 上,见「CDN」。

正反例:同一次「给 api 也配上域名」

目标都是让 api.example.com 能用,差别在改配置和续期的方式。

正例先检查再重载,续期演练过

AI 加一条 api.example.com → 127.0.0.1:4000,报告 nginx -t 通过后重载;续期演练通过。三个月后两个域名照常打开。

反例「配好了,重启一下 Nginx」

端口少写一位,Nginx 重启失败,网站和接口一起下线;证书没开自动续期,第 90 天访客全被浏览器拦下。

快速自测

访问 api.example.com 显示「502 Bad Gateway · nginx」,而 app.example.com 正常。最先该让 AI 查什么?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。