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

一、前言

      最近項目上線,做的是重構的項目,需要把老接口的流量切到新接口上,客戶端一直訪問的是老接口的url,沒有辦法改變,如果要做處理,就可以使用nginx把要訪問的url跳轉到新的接口上。

      比如:老接口要訪問 http://gateway.io/getUserById , 請求從客戶端傳出來,到nginx的時候,如果不做處理,nginx就會訪問對應機器。 如果不想這樣,nginx可以做url跳轉,就可以通過配置來訪問其他的url。

二、Nginx是什麼?

      如果沒有接觸過nginx的同學,可以看看小編以前寫的博客。

                                    【Nginx】什麼是Nginx?爲什麼使用Nginx?

      簡單的說nginx 有兩個作用 :

  1. 反向代理,流量跳轉
  2. 做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了。

      這樣就完成了跳轉

^(.*)$

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

      ^是正則表達式匹配字符串開始位置

      $是正則表達式匹配字符串結束位置

四、小結

加油,重溫一下。要保持熱度。堅持就是勝利。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章