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代表匹配一个之后停止匹配。

猜你喜欢

转载自my.oschina.net/u/3656540/blog/2870455