当前位置: 首页 > article >正文

Nginx location 和 proxy_pass 配置详解

概述

Nginx 配置中 locationproxy_pass 指令的不同组合方式及其对请求转发路径的影响。

配置效果

1. locationproxy_pass 都带斜杠 /
location /api/ {
    proxy_pass http://127.0.0.1:8080/;
}
  • 访问地址www.hw.com/api/upload
  • 转发地址http://127.0.0.1:8080/upload

转发地址不带 location 匹配目录 /api/

2. location 不带斜杠,proxy_pass 带斜杠 /
location /api {
    proxy_pass http://127.0.0.1:8080/;
}
  • 访问地址www.hw.com/api/upload
  • 转发地址http://127.0.0.1:8080//upload

转发地址会多带 /

3. location 带斜杠,proxy_pass 不带斜杠
location /api/ {
    proxy_pass http://127.0.0.1:8080;
}
  • 访问地址www.hw.com/api/upload
  • 转发地址http://127.0.0.1:8080/api/upload

转发地址会带 location 匹配目录 /api/

4. locationproxy_pass 都不带斜杠
location /api {
    proxy_pass http://127.0.0.1:8080;
}
  • 访问地址www.hw.com/api/upload
  • 转发地址http://127.0.0.1:8080/api/upload

转发地址会带 location 匹配目录 /api/

5. locationproxy_pass 都带斜杠 /,但 proxy_pass 带地址
location /api/ {
    proxy_pass http://127.0.0.1:8080/server/;
}
  • 访问地址www.hw.com/api/upload
  • 转发地址http://127.0.0.1:8080/server/upload

转发地址不带 location 匹配目录 /api/

6. location 不带斜杠,proxy_pass 带斜杠 /,但 proxy_pass 带地址
location /api {
    proxy_pass http://127.0.0.1:8080/server/;
}
  • 访问地址www.hw.com/api/upload
  • 转发地址http://127.0.0.1:8080/server//upload

转发地址不带 location 匹配目录 /api/ ,会多带 /

7. location 带斜杠,proxy_pass 不带斜杠,但 proxy_pass 带地址
location /api/ {
    proxy_pass http://127.0.0.1:8080/server;
}
  • 访问地址www.hw.com/api/upload
  • 转发地址http://127.0.0.1:8080/serverupload

转发地址不带 location 匹配目录 /api/ 直接进行了替换

8. locationproxy_pass 都不带斜杠,但 proxy_pass 带地址
location /api {
    proxy_pass http://127.0.0.1:8080/server;
}
  • 访问地址www.hw.com/api/upload
  • 转发地址http://127.0.0.1:8080/server/upload

转发地址不带 location 匹配目录 /api

总结

  • proxy_pass 代理地址端口后有目录(包括 /),转发后地址为:代理地址 + 访问 URL 目录部分去除 location 匹配目录
  • proxy_pass 代理地址端口后无任何内容,转发后地址为:代理地址 + 访问 URL 目录部分(包括 location 地址)

场景示例

upstream backend_name_hw {
  server 10.10.10.10:32323 max_fails=2 fail_timeout=2;
}

server {
    listen      80;
    server_name hw.test.com;

    client_max_body_size 1024m;
    client_body_timeout 12;
    client_header_timeout 12;
    keepalive_timeout 15;
    send_timeout 10;

    location / {
      proxy_pass http://backend_name_hw;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    
    location /hello {
      proxy_pass http://backend_name_hw/hello;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

在这里插入图片描述
在这里插入图片描述

    location /hw/ {
        proxy_pass http://hw-nginx/index.html;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

在这里插入图片描述

    location /hwhw/  {
        proxy_pass http://hw-nginx/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

在这里插入图片描述

    location /hw/hi/ {
        proxy_pass http://hw-nginx/hello/index.html;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

在这里插入图片描述

    location /hello/index.html {
        proxy_pass http://hw-nginx;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

在这里插入图片描述


http://www.kler.cn/a/512040.html

相关文章:

  • 机器人“大脑+小脑”范式:算力魔方赋能智能自主导航
  • 如何使用C++来实现OPENAI协议通过OLLAMA来与AI大模型通信
  • C# OpenCvSharp 部署文档矫正,包括文档扭曲/模糊/阴影等情况
  • python3GUI--仿崩坏三二次元登录页面(附下载地址) By:PyQt5
  • Ubuntu 24.04 LTS 空闲硬盘挂载到 文件管理器的 other locations
  • HTML<center>标签
  • 后端开发流程学习笔记
  • Linux 高级路由与流量控制-用 tc qdisc 管理 Linux 网络带宽
  • 【通信协议】TCP通信
  • 记录一个简单小需求,大屏组件的收缩与打开,无脑写法
  • 【日志篇】(7.6) ❀ 01. 在macOS下刷新FortiAnalyzer固件 ❀ FortiAnalyzer 日志分析
  • 【数据结构篇】顺序表 超详细!
  • AAAI2024论文解读|Towards Fairer Centroids in k-means Clustering面向更公平的 k 均值聚类中心
  • 【云原生布道系列】第三篇:“软”饭“硬”吃的计算
  • 在离线无管理员权限的情况下为Linux配置oh-my-zsh(zsh+oh my zsh+powerlevel10k)
  • 2025年免费量化交易软件——PTrade(含开通攻略)
  • .Net Core微服务入门全纪录(六)——EventBus-事件总线
  • 如何用selenium来链接并打开比特浏览器进行自动化操作(1)
  • 30天开发操作系统 第 16 天 -- 多任务 v2.0
  • 2025/1/20 学习Vue的第三天
  • 云计算技术深度解析与实践案例
  • OpenCV笔记3-图像修复
  • [深度学习]机器学习和深度学习
  • ElasticSearch索引别名的应用
  • Ubuntu 24.04 LTS 系统语言英文改中文
  • CSS 圆形头像和破图时显示默认图片