直接回答:不要用 Access-Control-Allow-Origin: * 放开所有来源,改成用 map 定义白名单再回填 $http_origin,同时记得加上 Vary: Origin,避免缓存把跨域头串到别的域名上。

关于跨域的配置

  1. 配置多个域

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    map $http_origin $corsHost {
    default 0;
    "~https://www.itbiancheng.com" https://www.itbiancheng.com;
    "~http://love.itbiancheng.com" http://love.itbiancheng.com;
    }
    server
    {
    listen 80;
    server_name www.itbiancheng.com;
    root /nginx;
    location /
    {
    add_header Access-Control-Allow-Origin $corsHost;
    }
    }
  2. 配置单个域

    1
    add_header Access-Control-Allow-Origin http://love.itbiancheng.com;

关于默认404的配置

1
2
3
4
error_page 400 401 402 403 404 500 501 502 503 504 /404.jpg;
location = /404.jpg {
root /etc/nginx/conf.d/;
}

关于referers的配置

1
valid_referers none blocked 192.168.1.100 localhost  henan.sf6.online 192.168.1.100;

其中 none和blocked是没有referer头和被清除了referer值

关于屏蔽nginx版本

1
2
fastcgi_intercept_errors on;
server_tokens off;

这个需要配置到nginx块中

这篇笔记整理自我自己的实践记录,如果做法有出入,或者你踩过别的坑,欢迎到留言板一起聊聊。

站内搜索

没有找到内容!