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

nginx路由

        一般我们经常在访问网站时,通常会遇到输入某个页面的网址时,出现路由的转发,重定向等。可能访问的是一个网址,出来的时候就显示的是另外的地址。这是由于使用了nginx的缘故,保护了网址的安全性

(1)假设我们想要从localhost:80/api/order/get  转到 localhost:8080/order/get,有两种书写方式

1
location /api/ {
                proxy_pass      http://localhost:8080/}

2
location /api/order/ {
                proxy_pass      http://localhost:8080/order}

当扫描到location /api/时,会将它替换为http://localhost:8080/ ,同理第二个当扫描到location /api/order/时,会替换为 http://localhost:8080/order ,这样我们就可以顺利的访问到我们想要访问的路径。

(2)书写形式

proxy: {
  "/api/v1": {
    target: "https://mock.mengxuegu.com/mock/63218b5fb4c53348ed2bc212/api/v1",
    ws: true,
    /** 是否允许跨域 */
    changeOrigin: true,
  	rewrite: (path) => path.replace("/api/v1", "/order")
  },

rewrite作用:替换,讲/api/v1替换为/order。

此时,我们要访问的路径过程:localhost:3333/api/v1/order/get--- > https://mock.mengxuegu.com/mock/63218b5fb4c53348ed2bc212/api/order/get ---->https://mock.mengxuegu.com/mock/63218b5fb4c53348ed2bc212/order/get(nginx)--->localhost:8080/order/get

通过nginx的转换,提高了服务器的安全性。

注意:

(1)浏览器不可能直接真正访问后台服务器。肯定是访问nginx,然后nginx给代理后端

(2)

https://mock.mengxuegu.com/mock/63218b5fb4c53348ed2bc212/api/order/get

https://mock.mengxuegu.com/mock/63218b5fb4c53348ed2bc212/order/get

https://mock.mengxuegu.com/mock/63218b5fb4c53348ed2bc212/login 绝对不是后台地址,绝对不会是真正服务器的地址,他应该也是nginx的地址,这个请求是浏览器发出去的

(3)

"/sign-system": {
    target: "http://127.0.0.1:8080/sign-system",
    ws: true,
    /** 是否允许跨域 */
    changeOrigin: true,
    rewrite: (path) => path.replace("sign-system", "")
  }
}

从上述代码来看,sign-system开头的,会进到上面这个路由里面,然后会将sign-system/sign ,给拼接到target后面,这样得到的路径为sign-system/sign-system/sign,这样我们访问的路径时错误的,会造成404问题,所以,我们需要将sign-system替换为空格,这样就达到只将/sign ,拼接到target后面的目的以获得正确的路径。


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

相关文章:

  • 计算机网络 day7 扫描IP脚本 - 路由器 - ping某网址的过程
  • git下载源码及环境搭建下载源码之后端(一)
  • 一道北大强基题背后的故事(七)——特征根公式的来龙去脉
  • Spring - 更简单的获取 Bean 对象
  • Android 四大布局使用详解
  • transformer 学习
  • Filebeat+ELK (grok、mutate、mutiline、date)详解
  • 数据结构与算法——什么是线性表(线性存储结构)
  • NVIDIA Deep Learning Accelerator (DLA) 支持的几种张量格式
  • 3ds Max 无插件制作燃烧的火焰动画特效
  • 直方图 直方图均衡化
  • VScode 终端无法识别npm以及Missing script: “serve“ 问题
  • SpringBoot第22讲:SpringBoot如何实现接口限流之分布式
  • 如何保证消息的可靠性+延迟队列(TTL+死信队列+延迟队列)
  • 小程序:页面跳转闪屏
  • SpringCloud分布式搜索引擎、数据聚合、ES和MQ的结合使用、ES集群的问题
  • Kafka 概述、Filebeat+Kafka+ELK
  • 2023机器人操作系统(ROS)暑期学校预热-线下时间/地点-(转发)
  • 2023年7月最新ESI 中国 国内高校排名(附上下载链接),
  • Android adb说明与详解