最近我把博客的静态资源和代码分离开来进行部署的,原来和代码放在一起,访问速度很慢,本来服务器带宽也不高,所以就把静态资源文件给单独弄出来了。

Nginx 提供了 valid_referers 参数用于检查url中refer参数的状态:

Syntax:    valid_referers none | blocked | server_names | string ...;
Default:    —
Context:    server, location

none:表示无Referer值的情况。
blocked:表示Referer值被防火墙进行伪装。
server_names:表示一个或多个主机名称。

以下是我的Nginx配置:

# 博客静态资源===================================
server {
  listen 80;
  listen 443 ssl http2;
  # 配置自己的域名
  server_name static.xiaofeivip.top;

  # 配置域名证书 这里填写自己的证书位置
  ssl_certificate "/www/1.pem";
  ssl_certificate_key "/www/1.key";
  # 指定客户端可以重用会话参数的时间
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  ssl_prefer_server_ciphers on;

  # 解决跨域问题
  add_header Access-Control-Allow-Origin *;
  add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
  add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';


  # 博客资源*******************************************************************
  location /xffjs {
    alias /www/wwwroot/static_resource/xffjs/;
    # 目录浏览功能 on:开启  off:关闭
    autoindex off;
    # 缓存一天,一般静态资源不经常去改变他,根据自己需求进行设置
    expires 1d;
    access_log /dev/null;
    # 自己域名 如果别的网站使用了你的文件,他的域名没配置在这里,他则无法访问这个文件
    valid_referers none blocked xffjs.com;
    if ($invalid_referer) {
      return 404;
    }
  }

  # 博客资源*******************************************************************

  # 访问其他路径返回404
  location / {
    if ($invalid_referer) {
      return 404;
    }
  }

  # 定义本虚拟主机的访问日志
  access_log /www/wwwlogs/static.log;
}
# 博客静态资源 End=======================================

Nginx 配置在线美化:https://xiaofeivip.top/tool/cool/nginx/