加密访问资源方法总结

在有些情况下我们需要对我们服务器上的资源进行加密访问,那么我们需要如何来实现呢?

1. 修改nginx配置

  • 修改nginx配置,将需要加密访问的资源设置为禁止外部访问

    # 资源真实存储路径 /upload 禁止外部直接访问
    location ^~ /upload {
      internal;
    }

  • 设置访问不存在资源时,跳转到指定的php脚本进行解析

    # 如果文件不存在,则rewrite到PHP脚本文件进行处理
    if (!-f $request_filename) {
      rewrite ^/.*$ /attachment.php;
    }

  • 根据如上配置nginx实现资源加密访问实例

    # 图片真实存储路径 /upload 禁止外部直接访问
    location ^~ /upload/school {
      internal;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
      # 如果文件不存在,则rewrite到PHP脚本文件进行处理
      if (!-f $request_filename) {
          rewrite ^/.*$ /attachment.php;
      }
      expires      30d;
      error_log /dev/null;
      access_log /dev/null; 
    }

    2. attachment.php(资源解析脚本)


  • 根据如上就可以实现资源机密访问,最总实现效果如下(站点域名为:www.test.com)
    -- 例如资源真实地址为:/upload/test.jpg
    -- 访问 www.test.com/upload/test.jpg 失败
    -- 访问 www.test.com/test.jpg 失败
    -- 访问 www.test.com/test.jpg?key=XXX 成功

你可能感兴趣的:(phpnginx资源)