当前位置 博文首页 > li5672的专栏:nginx解决跨域

    li5672的专栏:nginx解决跨域

    作者:[db:作者] 时间:2021-08-30 16:02

    什么是跨域

    协议 + 域名 + 端口 有一处不相同时,就认为是跨域

    为什么会有跨域

    同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到攻击。

    解决方案

    使用Nginx做反向代理

    • 情景1

      假设网站部署在80接口,在80接口下设置反向代理,可直接解决跨域问题

          location ^~/v1{
              rewrite ^/v1/(.*)$ /$1 break;
              proxy_pass  http://localhost:8080;
          }
    
    
    • 情景2

      假设网站部署在8081端口,api端口为8080,反向代理服务端口为80

      location ^~/v1{
            rewrite ^/v1/(.*)$ /$1 break;
            proxy_pass  http://localhost:8080;
            add_header Access-Control-Allow-Methods *;
            add_header Access-Control-Max-Age 3600;
            add_header Access-Control-Allow-Credentials true;
            add_header Access-Control-Allow-Origin $http_origin;
            add_header Access-Control-Allow-Headers 
            $http_access_control_request_headers;
            if ($request_method = OPTIONS){
                return 200;
            }       
      }
    
    cs
    下一篇:没有了