1. 程式人生 > >ngxin根據不同url轉到不同服務

ngxin根據不同url轉到不同服務

最近一個vue專案用到百度圖片識別api,涉及到跨域問題,找了一個nginx的解決方案。

配置如下:

server {
    listen       80;
    server_name  localhost;
    location / {
      root   C:\git\youseniu\ops\dist;
      index  index.html;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
      root   html;
    }
    location /baiduapi {
        rewrite 
		;
        proxy_pass https://aip.baidubce.com;
    }
  }
  1. 由配置資訊可知,我們讓nginx監聽localhost的80埠,網站A與網站B的訪問都是經過localhost的80埠進行訪問。
  1. 我們特殊配置了一個“/baiduapi”目錄的訪問,並且對url執行了重寫,最後使以“/baiduapi”開頭的地址都轉到“https://aip.baidubce.com”進行處理。
  1. rewrite ^/baiduapi(.)$ /$1 break; 代表重寫攔截進來的請求,並且只能對域名後邊以“/baiduapi”開頭的起作用,例如http://localhost/baiduapi/rest/2.0/ocr/v1/business_license?access_token=24.72ebec102414,rewriter到https://aip.baidubce.com/rest/2.0/ocr/v1/business_license?access_token=24.72ebec102414。只對/apis重寫。rewrite後面的引數是一個簡單的正則
    ^/baiduapi(.
    )$ ,$1代表正則中的第一個(),$2代表第二個()的值,以此類推。break代表匹配一個之後停止匹配。