Nginx 反向代理入门:三个配置看懂 proxy_pass
【摘要】 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)