关于Nginx的 location 配置各种情况转换后的样子记录

Nginx location 配置要代理的地址测试URL代理后的URL举例编号
/test01http://127.0.0.1:8080/test01/abc/test/test01/abc/test01
/test02http://127.0.0.1:8080//test02/abc/test//abc/test02
/test03/http://127.0.0.1:8080/test03/abc/test/test03/abc/test03
/test04/http://127.0.0.1:8080//test04/abc/test/abc/test04
/test05http://127.0.0.1:8080/app1/test05/abc/test/app1/abc/test05
/test06http://127.0.0.1:8080/app1//test06/abc/test/app1//abc/test06
/test07/http://127.0.0.1:8080/app1/test07/abc/test/app1abc/test07
/test08/http://127.0.0.1:8080/app1//test08/abc/test/app1/abc/test08
/http://127.0.0.1:8080/test09/abc/test/test09/abc/test09
/http://127.0.0.1:8080//test10/abc/test/test10/abc/test10
/http://127.0.0.1:8080/app1/test11/abc/test/app1test11/abc/test11
/http://127.0.0.1:8080/app2//test12/abc/test/app2/test12/abc/test12

举例测试前的准备

不知道内网穿透的可参考我的博客: https://blog.csdn.net/qq_33333654/article/details/130106800?spm=1001.2014.3001.5502

思路

1、本地准备http接口
2、nginx代理到本地接口
3、使用natapp指向本地nginx代理的端口

配置natapp 并启动

在这里插入图片描述
启动内网穿透后会有个外网地址:
在这里插入图片描述
我没有开会员,注意这个地址是会变动的

配置nginx

# Nginx Test
    server {
    listen       8082;
    server_name  localhost;
            
    location /test01 {
            proxy_pass http://127.0.0.1:8080;
    }

    location /test02 {
            proxy_pass http://127.0.0.1:8080/;
    }

    location /test03/ {
            proxy_pass http://127.0.0.1:8080;
    }

    location /test04/ {
            proxy_pass http://127.0.0.1:8080/;
    }

    location /test05 {
            proxy_pass http://127.0.0.1:8080/app1;
    }

    location /test06 {
            proxy_pass http://127.0.0.1:8080/app1/;
    }

    location /test07/ {
            proxy_pass http://127.0.0.1:8080/app1;
    }

    location /test08/ {
            proxy_pass http://127.0.0.1:8080/app1/;
    }

    # 09
    location / {
            proxy_pass http://127.0.0.1:8080;
    }

    # 10
    #location / {
    #        proxy_pass http://127.0.0.1:8080/;
    #}

    # 11
    #location / {
    #        proxy_pass http://127.0.0.1:8080/app1;
    #}

    # 12
    #location / {
    #        proxy_pass http://127.0.0.1:8080/app2/;
    #}
    
    }

10到12先注释掉,跟09冲突了,后面测试再放开

准备测试所需的工程代码 JAVA


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {


    @GetMapping("/test01/abc/test")
    public String test01abctest(){
        System.out.println("Test num is 01 ; this is /test01/abc/test");
        return "01";
    }

    @GetMapping("/abc/test")
    public String test02or04abctest(){
        System.out.println("Test num is 02 or 04 ; this is /abc/test");
        return "02 or 04";
    }

    @GetMapping("/test03/abc/test")
    public String test03abctest(){
        System.out.println("Test num is 03 ; this is /test03/abc/test");
        return "03";
    }

    @GetMapping("/app1/abc/test")
    public String test05or06or08abctest(){
        System.out.println("Test num is 05 or 06 or 08; this is /app1/abc/test");
        return "05 or 06 or 08";
    }

    @GetMapping("/app1abc/test")
    public String test07abctest(){
        System.out.println("Test num is 07; this is /app1abc/test");
        return "07";
    }


    @GetMapping("/test09/abc/test")
    public String test09abctest(){
        System.out.println("Test num is 09 ; this is /test09/abc/test");
        return "09";
    }

    @GetMapping("/test10/abc/test")
    public String test10abctest(){
        System.out.println("Test num is 10 ; this is /test10/abc/test");
        return "10";
    }


    @GetMapping("/app1test11/abc/test")
    public String test11abctest(){
        System.out.println("Test num is 11 ; this is /app1test11/abc/test");
        return "11";
    }

    @GetMapping("/app2/test12/abc/test")
    public String test12abctest(){
        System.out.println("Test num is 12 ; this is /app2/test12/abc/test");
        return "12";
    }

}

随便使用任意的http测试工具例如postman

我用的是apifox
在这里插入图片描述

01 测试

测试工具请求地址:

http://a9542k.natappfree.cc/test01/abc/test

在这里插入图片描述
响应结果:

在这里插入图片描述

工程代码控制台输出:
在这里插入图片描述

02 测试

访问地址:

http://a9542k.natappfree.cc/test02/abc/test

响应结果:
在这里插入图片描述
控制台日志:
在这里插入图片描述
说明我们配置是正确的,因为转换的实际路径是:
http://127.0.0.1:8080//abc/test
因为我们工程里压根没有“//abc/test”的接口,所以才会报错。
换句话说,报错就对了。

解决方案,修改nginx配置

03 测试

访问地址:

http://a9542k.natappfree.cc/test03/abc/test

我换了一下postman试试
响应结果:
在这里插入图片描述
控制台输出:
在这里插入图片描述

04 测试

访问地址:

http://a9542k.natappfree.cc/test04/abc/test

响应结果:
在这里插入图片描述
控制台输出:
在这里插入图片描述
后面的就不逐个测试了,感兴趣的可以自行测试一下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/44060.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Drools用户手册翻译——第四章 Drools规则引擎(六)执行控制

主要讲了规则匹配时的优先级设置的方式。 甩锅声明:本人英语一般,翻译只是为了做个笔记,所以有翻译错误的地方,错就错了,如果你想给我纠正,就给我留言,我会改过来,如果懒得理我&…

css终极方案PostCSS

一见如故 原理 所有的css框架都在一样的事,那就是由一个css生成一个新的css,那么postcss就来做了一个抽离: 1、将原有的css解析成抽象语法树 2、中间经过若干个插件 3、重新文本化,形成新的css postcss.config.js module.expor…

Spring Cloud 负载平衡的意义什么?

目录 一、什么是负载平衡 二、为什么需要负载平衡 三、Spring Cloud 如何实现负载平衡 四、负载平衡的nginx配置 一、什么是负载平衡 负载平衡是指将网络流量在多个服务器之间分布,以达到提高系统性能、增强可靠性和提供更好用户体验的目的。在负载平衡的架构中…

32位Cortex-M4 MCU:LPC54607J256ET180E、LPC54605J512BD100K 180MHz嵌入式微控制器

LPC546xx 32 位微控制器(MCU) 具有丰富的外设集、极低的功耗和增强的调试功能。 LPC546xx MCU系列采用ARM Cortex-M4内核,可提供以太网支持,并设有一个TFT LCD控制器和两个CAN FD模块。LPC546xx MCU旨在提高灵活性和性能可扩展性,可提供高达1…

Java - 泛型

泛型 1、 当我们ArrayList表示存放到ArrayList集合中的元素是Dog类型时 2、如果编译器发现添加的类型&#xff0c;不满足要求&#xff0c;就会报错。 3、遍历的时候直接取出Dog类型&#xff0c;而不是Object。 ArrayList<Week> weeks1 new ArrayList<>();好处…

科研院所用泛微搭建信创办公平台,统一办公,业务融合,安全便捷

国家全面推动重要领域的信创改造工作&#xff0c;要求到2027年底&#xff0c;对综合办公、经营管理、生产运营等系统实现“应替尽替、能替则替”。 科研机构作为智力、知识密集型机构&#xff0c;承载着大量数据、信息资产&#xff0c;数字化程度高&#xff0c;业务系统多样&a…

SpringBoot项目修改Tomcat版本号

SpringBoot项目修改Tomcat版本号 前言如果项目是以jar包形式打包部署如果项目是以war包形式打包部署示例 仰天大笑出门去&#xff0c;我辈岂是蓬蒿人 前言 Springboot项目,默认是使用内嵌Tomcat servlet容器形式打包部署。关于怎么修改默认的版本号&#xff0c;捣鼓了好久终于…

NLP(六十)Baichuan-13B-Chat模型使用体验

2023年7月11日&#xff0c;百川智能正式发布参数量130亿的通用大语言模型Baichuan-13B-Base、对话模型Baichuan-13B-Chat及其INT4/INT8两个量化版本。   本文将介绍大模型BaiChuan-13B-Chat的使用体验&#xff0c;其HuggingFace网址为&#xff1a;https://huggingface.co/bai…

8. Vmvare中重新分配Linux系统的分区空间大小

1. 说明 一般情况下&#xff0c;在使用Vmvare虚拟机创建配置Linux系统时&#xff0c;默认将系统的内存设置为4GB&#xff0c;硬盘大小设置为40GB&#xff0c;但随着空间利用的越来越多&#xff0c;内存会出现不够使用的情况&#xff0c;此时需要重新分配空间大小&#xff0c;具…

一起学数据结构(1)——复杂度

目录 1. 时间复杂度&#xff1a; 1.1 时间复杂度的概念&#xff1a; 1.2 时间复杂度的表示及计算&#xff1a; 1.3 较为复杂的时间复杂度的计算&#xff1a; 2. 空间复杂度&#xff1a; 2.1 空间复杂度的概念&#xff1a; 2.2 空间复杂度的计算&#xff1a; 1. 时间复杂度…

【C++进阶之路】适配器、反向迭代器、仿函数

文章目录 前言一、适配器①模拟实现栈②模拟实现对列 二、反向迭代器三、仿函数总结 前言 我们先来笼统的介绍一下今天的三个内容。 适配器——简单的理解就是复用&#xff0c;用已经实现的轮子&#xff0c;来继续实现某种功能。 反向迭代器——原理很简单&#xff0c;就是对…

Maven发布中央仓库始终报403

把域名 oss.sonatype.org 全部替换为&#xff1a;s01.oss.sonatype.org

Chatgpt Web API 创建对话,免费,不计token数量,模仿网页提交对话

Chatgpt API 是收费的&#xff0c;按token使用量计费 Chatgpt Web API 免费的&#xff0c;只要有账号就可以使用。 curl https://chat.openai.com/backend-api/conversation \-H authority: chat.openai.com \-H accept: text/event-stream \-H accept-language: zh-CN,zh;q…

52.弱集合 WeakSet

WeakSet与Set相似&#xff0c;Set的方法在WeakSet中基本都能使用 WeakSet只能放对象 WeakSet不能被遍历 目录 1 创建WeakSet 2 弱集合的指向问题 1 创建WeakSet 直接在创建的时候把对象放进去是不行的 你需要用add()方法才可以放进去 2 弱集合的指向问题 当你把obj加…

前后端分离windows本地nginx解决跨域

下载 http://nginx.org/en/download.html 命令 启动Nginx&#xff1a; nginx.exe start 快速停止或关闭Nginx&#xff1a; nginx.exe -s stop 正常停止或关闭Nginx&#xff1a; nginx.exe -s quit 配置文件修改重装载命令&#xff1a; nginx.exe -s reload 强制停用…

Java基本数据类型

Java基本数据类型 字面常量数据类型变量整形变量长整形变量短整型变量字节型变量思考浮点型变量双精度浮点型单精度浮点型 字符型布尔型变量 类型转换类型提升 字面常量 字符串常量&#xff1a;由""括起来的&#xff0c;比如“12345”、“hello”、“你好”。整形常量…

机器学习---经验误差与过拟合、方差与偏差、性能度量、比较检验

1. 经验误差与过拟合 第三张图建立的模型&#xff0c;在训练集中通过x可以很好的预测y&#xff0c;然而我们不能预期该模型能够很好的预 测集外的数据&#xff0c;换句话说&#xff0c;这个模型没有很好的泛化能力。 第一张图建立了一个线性模型&#xff0c;但是该模型并没有…

Nginx 301 https跳转后出现跨域和混合内容问题 —— 筑梦之路

问题 在浏览器地址栏敲入url访问静态资源目录时&#xff0c;发现默认跳转到了http协议的地址 如上图所示&#xff0c;客户端https请求先到达API网关&#xff0c;然后网关将请求通过http协议转发到静态资源服务器。 调出浏览器发现客户端发送的https请求收到了一个301状态码的响…

nodejs+vue+elementui学习交流和学习笔记分享系统

Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台。 前端技术&#xff1a;nodejsvueelementui,视图层其实质就是vue页面&#xff0c;通过编写vue页面从而展示在浏览器中&#xff0c;编写完成的vue页面要能够和控制器类进行交互&#xff0c;从而使得用户在点击网页进…

Kotlin 协程 CoroutineScope

协程定义&#xff1a; 19年官方是这样说的&#xff1a;协程是轻量级的线程&#xff0c;协程就是 Kotlin 提供的一套线程封装的 API&#xff1b; 现在官方是这样说的&#xff1a;协程是一种并发设计模式&#xff1b; 协程作用&#xff1a; 1.处理耗时任务&#xff1b; 2.保…