利用 Nginx 处理 Vue 开发环境的跨域

1. 需求

本地测试域名与线上域名相同,以便正确传递 Cookie 和进行 SSO 测试。

注:由于 SSO 登录后,相关 Cookie 被加在四级域名上,因而需要做到本地测试域名和线上接口域名相同。

2. 方案

配置 Host 文件使线上域名指向 Localhost:

127.0.0.1 product.xxx.xxx.com

配置 Nginx 进行对应转发:

server {
    listen       80;
    listen       [::]:80;
    server_name  ${product.xxx.xxx.com};

    location /api {
        proxy_pass https://${ip.ip.ip.ip};
        proxy_set_header Host $host;
    }

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
    }    
}

配置 vue.config.js 以免出现 Invalid Host header 报错:

{
    devServer: {
        disableHostCheck: true
    }
}
    原文作者:dailybird
    原文地址: https://segmentfault.com/a/1190000019390112
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞