【Nginx】Nginx如何配置指定接口的跳转

您所在的位置:网站首页 nginx配置跳转到百度地址 【Nginx】Nginx如何配置指定接口的跳转

【Nginx】Nginx如何配置指定接口的跳转

2024-07-12 08:54| 来源: 网络整理| 查看: 265

一、前言

      最近项目上线,做的是重构的项目,需要把老接口的流量切到新接口上,客户端一直访问的是老接口的url,没有办法改变,如果要做处理,就可以使用nginx把要访问的url跳转到新的接口上。

      比如:老接口要访问 http://gateway.io/getUserById , 请求从客户端传出来,到nginx的时候,如果不做处理,nginx就会访问对应机器。 如果不想这样,nginx可以做url跳转,就可以通过配置来访问其他的url。

二、Nginx是什么?

      如果没有接触过nginx的同学,可以看看小编以前写的博客。

                                    【Nginx】什么是Nginx?为什么使用Nginx?

      简单的说nginx 有两个作用 :

反向代理,流量跳转做http服务器,做静态文件服务器

      这里我们用到的就是反向代理的功能。

三、如何配置指定接口跳转?

      Nginx 在 /etc/nginx/conf.d 路径下有 nginx.conf 文件:

在这里插入图片描述

server { listen 80; listen [::]:80; server_name api.ares.com; access_log /opt/nginxlogs/api.ares.com/access_log main; error_log /opt/nginxlogs/api.ares.com/error_log error; include /etc/nginx/conf.d/proxy-api-test7; location / { proxy_pass http://www.baidu.com; } }

      可以通过 include 文件全路径, 来指定文件 ,就不用把这个conf文件写的很长。可以把所有的跳转抽出来,方便修改,方便管理。而且方便管理。

      比如,我们配置了多个 server,每个server监听的是不同的域名。抽出文件后,就可以清楚的把每个域名的跳转指定到固定的文件中。

      jumpInfo文件,配置具体接口跳转信息

location ~* ^/Login/Record { rewrite ^(.*)$ /fee-system/Login/record break; proxy_pass http://gateway.ares.com; proxy_set_header Host gateway.ares.com; } location ~* ^/User/status { rewrite ^(.*)$ /user-system/user/status break; proxy_pass http://gateway.ares.com; proxy_set_header Host gateway.ares.com; } location ~* ^/Pay$ { rewrite ^(.*)$ /fee-system/pay break; proxy_pass http://gateway.ares.com; proxy_set_header Host gateway.ares.com; }

      这个文件就是 include /etc/nginx/conf.d/jumpInfo。配置的指定全路径的跳转信息文件。其实简单的也就是通过localtion来进行跳转的。

http:// api.ares.com/Login/Record 是访问的原路径

http:// api.ares.com/fee-system/Login/record 是访问的新路径

注意 /Pay$

      这里要说明一下这个,$表示是终止符,到这里就结束。 否则如果还有配置 /Pay/AAA 的这种,如果在后面,就会跳转到/Pay指定的url了。

      这样就完成了跳转

^(.*)$

      匹配所有的路径映射到入口文件

      ^是正则表达式匹配字符串开始位置

      $是正则表达式匹配字符串结束位置

四、小结

加油,重温一下。要保持热度。坚持就是胜利。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3