596 字
3 分钟
从 localhost 到上线:一次部署要打通哪些环节
“本地能运行”和“用户能访问”,中间隔着的不只是一次上传。尤其当前端、后端和数据库分开运行时,应该把整个请求经过的路径连起来看。
先确认应用真的在监听
排查网络错误时,最先确认的是服务进程和监听端口。配置文件写了端口,并不等于应用已经启动成功。数据库连接失败、环境变量缺失或者 Java 运行版本不匹配,都可能让进程在启动阶段退出。
Linux 环境下,可以先查看监听信息,然后从服务器本机发起请求。下面的端口仅作示例,应替换成项目实际配置。
ss -ltnpcurl -I --max-time 5 http://127.0.0.1:8082/根路径返回 404 或 401,也不一定表示应用没启动。需要结合项目真实的路由和日志判断。连接被拒绝,则应优先检查进程是否存活、端口是否一致。
再看反向代理如何转发
浏览器请求项目域名后,Nginx 可以直接返回前端静态文件,再把 /api 等路径转给后端。此时浏览器访问的是域名,后端可以只监听服务器本机。
需要核对两个路径:浏览器请求的 URL,以及后端最终收到的 URL。proxy_pass 的路径写法会影响转发结果,不能只看端口是否正确。
前端地址不能停留在 localhost
开发时把接口地址写成 localhost 很方便,但构建产物一旦进入浏览器环境,这个地址就指向访问者自己的电脑,而不是服务器。
生产环境应使用明确的 API 域名或同域路径,并在部署前检查构建变量是否真正进入产物。仅修改开发环境的 .env,不一定能改变已经构建的前端文件。
最后做一次完整验收
部署完成后,按真实访问路径逐一确认:
- DNS 是否解析到目标服务器。
- HTTPS 证书是否有效。
- 静态资源是否返回成功。
- 前端请求是否能到达后端。
- 后端是否能连接数据库。
- 进程重启后服务是否仍能自动恢复。
每一步都成功,才算是从 localhost 真正走到了线上。