当前位置: 代码网 > it编程>数据库>Redis > Nginx location和proxy_pass配置示例详解

Nginx location和proxy_pass配置示例详解

2024年11月10日 Redis 我要评论
概述nginx 配置中location和proxy_pass指令的不同组合方式及其对请求转发路径的影响。配置效果1.location和proxy_pass都带斜杠/location /api/ {

概述

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

配置效果

1. 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

转发地址不带 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. 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/

5. 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/

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. 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

总结

  • 当 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;
    }

到此这篇关于nginx location和proxy_pass配置的文章就介绍到这了,更多相关nginx location和proxy_pass配置内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

  • Redis数据一致性详解

    1、一致性一致性是指系统中各节点数据保持一致。分布式系统中,可以理解为多个节点中的数据是一致的。一致性根据严苛程度分类:强一致性:写进去的数据是什么,读出来的数据就是什么,对性能影…

    2024年11月15日 数据库
  • Nginx修复CORS漏洞的实现方法

    Nginx修复CORS漏洞的实现方法

    漏洞描述cors 不安全配置漏洞指的是在跨域资源共享过程中,由于资源服务器的响应头 access-control-allow-origin 配置不当导致本应该受... [阅读全文]
  • redis事务如何解决超卖问题

    redis事务如何解决超卖问题

    redis事务解决超卖问题redis的事务提供了一种将多个命令请求打包,然后一次性、按顺序性地执行多个命令的机制。在事务执行期间,服务器不会中断事务而去执行其它... [阅读全文]
  • 关于Redis库存超卖问题的分析

    一、分析问题刚刚秒杀优惠券购买测试的时候是我们自己在页面上点击进行测试的,这跟真实的秒杀场景还是有很大差异的,因为真实的秒杀场景下肯定有无数的用户一起来抢购,一起来点购这个按钮,因…

    2024年11月05日 数据库
  • ELK配置转存redis缓存采集nginx访问日志的操作方法

    在136服务器上部署mysql启动mysql服务可通过以下命令查找安装的软件包怎么查找安装软件的日志文件位置rpm -qc mysql-server,即可显示mysql.log位置…

    2024年11月05日 数据库
  • 如何解决Redis缓存穿透(缓存空对象、布隆过滤器)

    如何解决Redis缓存穿透(缓存空对象、布隆过滤器)

    背景缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库常见的解决方案有两种,分别是缓存空对象和布隆过滤器1.缓... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com