Nginx 跨域

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 跨域相关的知识,希望对你有一定的参考价值。

1:配置

nginx 配置文件的 server 节点增加如下片段代码:

  add_header X-Frame-Options SAMEORIGIN;
add_header Access-Control-Allow-Origin *;
add_header Content-Security-Policy "upgrade-insecure-requests;connect-src *";
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Headers Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

2:支持限制跨域的域名

  add_header Access-Control-Allow-Origin *;

这样的设置是支持所有域名跨域访问nginx

如果想对跨域访问的域名做限制,则需要做如下配置:

1:在server节点上增加如下代码,改代码片段和server 节点评级

map $http_origin $corsHost 
default 0;
"~https://www.baidu.com" https://www.baidu.com;
"~http://www.baidu.com" http://www.baidu.com;

这里一定要注意:

"~https://www.baidu.com" 最前面的是~ 不是-

2:配置 server 节点中的 Access-Control-Allow-Origin

add_header Access-Control-Allow-Origin $corsHost;


以上是关于Nginx 跨域的主要内容,如果未能解决你的问题,请参考以下文章

nginx 解决跨域、手机测试 2019-05-27

nginx配置反向代理解决vue跨域问题

php设置了跨域没用,是nginx问题吗

宝塔面板Nginx反向代理解决跨域问题

如何搞定前端资源服务跨域问题之nginx篇

Nginx的反向代理跨域