← AI 百科

反向代理

部署与运维 · 部署
一句话:用Nginx、Caddy等把域名请求转发到后端服务,并处理HTTPS、路径和端口。

它是什么

反向代理站在用户和后端服务之间。用户访问域名,反向代理根据域名或路径把请求转发到对应服务,同时可以处理HTTPS证书、压缩、缓存、日志和安全限制。

适合干什么

  • 把多个服务部署到同一台服务器的人
  • 需要给Node.js、Python、n8n配置域名的人
  • 遇到端口不能直接暴露的人
  • 需要HTTPS和路径转发的项目

不适合干什么

  • 只用Vercel这类平台部署的纯前端项目
  • 完全不管理服务器的人
  • 没有域名或公网访问需求的本地项目
  • 希望反向代理解决所有后端Bug的场景

普通人怎么用

  • 让后端服务在本机端口运行
  • 把域名解析到服务器
  • 用Nginx或Caddy监听80和443端口
  • 配置转发到本机服务端口
  • 测试HTTP、HTTPS和静态资源是否正常

进阶用户怎么用

  • 按域名区分多个服务
  • 配置WebSocket转发
  • 设置上传大小和超时时间
  • 记录访问日志并限制敏感路径

常见误区

  • 域名解析没生效就配置代理
  • 后端只监听127.0.0.1或端口写错
  • 忘记WebSocket升级头
  • 上传文件被代理默认大小限制拦住

和相似工具的区别

  • 反向代理 vs 正向代理:正向代理代表客户端访问外部,反向代理代表服务器接收外部访问并转发到内部服务。
  • 反向代理 vs 域名解析:域名解析负责找到服务器,反向代理负责服务器内部把请求转到哪个应用。

入门步骤

  • 服务本地运行
  • 域名解析
  • 安装代理
  • 写转发规则
  • 申请HTTPS
  • 测试路径
  • 查看日志

推荐工具(第三方)

Nginx、Caddy、Traefik、Docker Compose、Cloudflare、VPS