news 2026/5/9 11:52:36

Nginx location 和 proxy_pass 配置详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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; }

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 4:48:04

Nginx 的 proxy_pass 使用简介

文章目录 1. 基本概念 1.1 proxy_pass 概述1.2 语法1.3 使用场景 2. 基本用法 2.1 HTTP 代理 2.1.1 基本示例2.1.2 绝对根路径 vs 相对路径 2.2 Stream 代理 3. 高级用法 3.1 正则匹配3.2 变量使用3.3 重定向3.4 精确匹配3.5 if 语句3.6 limit_except 4. 实际案例 4.1 转发到多…

作者头像 李华
网站建设 2026/5/1 1:50:51

Nginx 生成、配置SSL证书让浏览器信任证书

文章目录 1.生成SSL证书 1.1生成自签名证书(生成证书方式一)1.2.模拟CA机构方式生成证书(生成证书方式二,推荐) 3.1 生成 CA 的私钥ca.key和自签名证书ca.crt:3.2 生成服务器私钥 server.key:3.3 生成服务器证书请求文件server.csr&#xff…

作者头像 李华
网站建设 2026/5/2 21:09:02

如何查看电脑上是ros1还是ros2呢?

问题描述:如何查看电脑上是ros1还是ros2呢?问题解答:要查看你的电脑上安装的是 ROS 1 还是 ROS 2,可以通过以下几种方式来确认:1. 检查环境变量ROS 通常会在环境变量中设置一些标识,可以通过查看终端中的环…

作者头像 李华
网站建设 2026/5/6 10:19:07

net.sf.jsqlparser.statement.select.Select.getSelectBody()

1、问题原因 发生这个问题就是因为Pagehelper中jsqlparser和Mybatis-puls中jsqlparser冲突,以我的项目来说,我项目中的Pagehelper中jsqlparser版本为4.2而Mybatis-puls中jsqlparser的版本为4.9,就导致版本兼容问题 2、解决方法 如果你想以…

作者头像 李华
网站建设 2026/5/2 20:07:03

Nginx 安装及配置教程(Windows)【安装】

文章目录 一、 Nginx 下载 1. 官网下载2. 其它渠道 二、 Nginx 安装三、 配置四、 验证五、 其它问题 1. 常用命令2. 跨域问题 软件 / 环境安装及配置目录 一、 Nginx 下载 1. 官网下载 安装地址:https://nginx.org/en/download.html 打开浏览器输入网址 htt…

作者头像 李华
网站建设 2026/5/7 22:46:40

金运环球:被动卖压VS鸽派预期,非农前聚焦关键区间

【市场早间简述】大宗商品指数年度再平衡于昨日盘后正式启动,预计将产生显著被动抛压,昨日金银价格在抛压下V型反弹显示买盘支撑。地缘政治风险持续存在,叠加美联储官员鸽派表态强化降息预期,为市场提供中长期支撑。现货黄金与白银…

作者头像 李华