配置nginx访问控制-设置防盗链
1、设置访问控制。只允许本机查看nginx的status状态信息,其它人均拒绝:
nginx -V查看nginx是否有status模块,如果没有需要添加
![](https://img2020.cnblogs.com/blog/2174174/202010/2174174-20201011195340848-764853275.png)
编辑修改nginx.conf文件:在server段添加location 匹配规则:
location = /status { allow 192.168.1.x; deny all; stub_status; }
重新加载nginx并且验证/是否生效:
![](https://img2020.cnblogs.com/blog/2174174/202010/2174174-20201011195504534-2006993563.png)
其它客户端访问被拒绝:
![](https://img2020.cnblogs.com/blog/2174174/202010/2174174-20201011195524376-855070592.png)
2、设置防盗链,截图验证设置成功(出现图裂);
在1.21服务器上配置防盗链
vaild_referers 表示合法的referers设置none:表示referers,直接通过浏览器或者其它工具访问。blocked: 表示有referers, 但是被代理服务器或者防火墙隐藏; litixia.net: 表示通过lutixia.net访问的referers; *.jfedu.net: 表示通过*.jfedu.net访问的referers, *表示任意host主机。
编辑nginx配置文件添加如下内容:
location ~* \.(gif|jpg|png|swf|flv)$ { valid_referers none blocked lutixia.net *.jfedu.net; root /usr/local/nginx/html if ($invalid_referers) { return 403 } }
要确保1.21服务器html目录下有该图片 xxx.png:
![](https://img2020.cnblogs.com/blog/2174174/202010/2174174-20201011195716370-398723991.png)
在1.22机器当作测试服务器:基于nginx发布如下test.html页面, 代码如下,去调1.21官网的xxx.png图片, 由于1.21官网设置了防盗链,多余无法访问该图片:vim /usr/local/nginx/html/jfedu.html
![](https://img2020.cnblogs.com/blog/2174174/202010/2174174-20201011195743763-1621109578.png)
web页面测试: 1.21服务访问效果
![](https://img2020.cnblogs.com/blog/2174174/202010/2174174-20201011195913688-64850514.png)
1.22访问效果:
3\设置img目录加密: nginx文件代码如下:
location /img { auth_basic "USER AUTH"; auth_basic_user_file /usr/local/nginx/conf/auth.passwd; root html; }
创建img 目录及上传认证文件:用户名及密码
mkdir -p /usr/local/nginx/html/img echo "this is img html" >/usr/local/nginx/html/img/index.html 安装httpd-tools 此软件 主要生成htpasswd工具 yum install httpd-tools -y htpasswd -c /usr/local/nginx/conf/auth.passwd admin /usr/local/nginx/sbin/nginx -s reload
web页面访问效果:
![](https://img2020.cnblogs.com/blog/2174174/202010/2174174-20201011200352856-1534689528.png)
结果报错: 403 没有这个文件或者目录 排错方式: 查看日志 tail -fn 30 /usr/local/nginx/logs/error.log 错误提示: open (打开) /usr/local/nginx/conf/auth.passwd failed(失败) NO such file or directory (没有这个文件或目录) 解决方法: 创建auth.passwd这个文件 或者将passwd文件备份成auth.passwd