nginx 反向代理
2025/6/26大约 1 分钟
nginx 反向代理
- 情况说明
当用户访问你的网站并发出请求时,如果请求地址中使用的是 localhost,这个 localhost 是相对于发出请求的机器
- 用户在浏览器中访问你的网站,例如 https://example.com。
- 然后网页中通过 JavaScript 发起了一个请求,例如 fetch("http://localhost:3000/api")。
- 结果分析:
这个 http://localhost:3000/api 会尝试访问 用户本地机器 的 localhost(即:127.0.0.1:3000),不是你的服务器的 localhost。
- 如果你希望请求打到服务器再由 Nginx 转发,应该这样做:
// 相对路径,会发送到 example.com,由 nginx 代理转发到 localhost:4000
// 这个 /api 是一个 相对路径,意思是它不会指定域名或协议,而是:
// “请求当前网页所处域名下的 /api 路径。”
fetch("/api")然后你的 Nginx 里配置:
location /api {
proxy_pass http://localhost:4000;
}- 目标场景
你的网站通过 Nginx 反向代理,前端代码中使用 相对路径(如 fetch("/api/xxx")、fetch("/auth/xxx"))来请求不同的后端服务。