反向代理
一句话:用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