使用nginx配置Vue项目,减少一次option请求
现在流行的前后端分离的写法。拆成不同Web服务进行部署。客户端一般是多发一个option请求解决跨域问题。有多个通过api拉数据请求,就有多少个option请求,对性能影响很大。
使用Nginx可以把特定路径的请求转发到指定服务里。
把前端网站部署域名为blog.iwangtao.com,然后有个后台服务,之前的域名是api.iwangtao.com。现在可以在blog.iwangtao.com里做配置,把blog.iwangtao.com下的/api/*请求转发到原api.iwangtao.com下。
定义好一个后台的upstream是这样的
upstream say-hi {
server 127.0.0.1:9000;
server 127.0.0.1:9001;
server 127.0.0.1:9002;
server 127.0.0.1:9003;
}
在server内,添加
location /api/ {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://say-hi/;
}
「/api/」结尾一定要是「/」才会可以正常匹配。
普通前端匹配的路径,例如location / {}
抢占式前缀匹配的路径,例如location ^~ / {}
精确匹配的路径,例如location = / {}
命名路径,比如location @a {}
无名路径,比如if {}或者limit_except {}生成的路径
这样所有/api/请求都会转发到配置好的say-hi里