Nginx 反向代理入门:三个配置看懂 proxy_pass

举报
yd_233118316 发表于 2026/11/05 05:14:11 2026/11/05
【摘要】 proxy_pass 结尾斜杠的区别、proxy_set_header 为什么要设、upstream 负载均衡三件套一次讲清。

后端服务跑在 8080,用户只想访问 80——这中间就是反向代理(Nginx)在工作。理解反向代理只需抓住一句话:用户访问 Nginx,Nginx 替用户去访问真正的服务,再把结果带回来。

一、最小可用配置

server {
    listen 80;
    server_name demo.example.com;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

核心是 proxy_pass:所有匹配 location / 的请求都被转发到本机 8080。两行 proxy_set_header 让后端知道真实访问的域名和来源 IP——不设的话后端看到的都是 127.0.0.1。

二、proxy_pass 结尾斜杠的区别

这是新手最容易踩的坑:

location /api/ {
    proxy_pass http://127.0.0.1:8080/;    # 转发时去掉 /api/ 前缀
}
location /api/ {
    proxy_pass http://127.0.0.1:8080;     # 保留完整路径 /api/xxx
}

结尾带斜杠 = 替换路径;不带 = 原样转发。记住"有斜杠就替换",排查 404 时先看这里。

三、负载均衡顺手就配了

upstream backend {
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}
server {
    location / {
        proxy_pass http://backend;
    }
}

upstream 定义一组后端,Nginx 默认轮询分发。某台挂了会自动摘除(配合 max_fails 参数更稳)。

小结

proxy_pass + proxy_set_header + upstream 三件套,覆盖了反向代理 80% 的日常场景。改完配置记得 nginx -t 检查语法再 reload。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。