赞
踩
这里简单地记录Nginx防盗链的配置。之所以要做这个配置是因为有些内容放在内网不能公开到外网上的,用防盗链一定程度的避免被调用。配置文件如下:
- server {
- listen 80;
- server_name 112.97.48.237;
- #charset koi8-r;
- #access_log logs/host.access.log main;
-
- location / {
- root html/ryproject;
- index index.html index.htm;
- #proxy_pass http://ryproject-proxy/;
- #proxy_redirect off;
- #proxy_set_header Host $host;
- #proxy_set_header X-Real-IP $remote_addr;
- #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- add_header Access-Control-Allow-Origin *;
- }
-
- #图片和css文件
- location ~* \.(png|css)$ {
- root html/ryproject/static; #png和css样式文件的地址
- valid_referers ryproject-web;
- if ($invalid_referer){
- #rewrite ^/
- return 403;
- }
- }
-
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root html;
- }
- }
这里我配置了 防盗链的简单配置:
- #图片和css文件
- location ~* \.(png|css)$ {
- root html/ryproject/static; #被访问png和css样式文件的目录
- valid_referers ryproject-web;
- if ($invalid_referer){
- #rewrite ^/
- return 403;
- }
- }
前端配置的域名是 http://ryproject-web,访问这个网站时,里面也访问了样式(样式所在地址http://112.97.48.237/html/ryproject/static/**.css)。
这里配置的 valid_referers表示允许请求源为 ryproject-web的域名访问png和css资源(这里的域名前面不要加http://) ,valid_referers相当于一个白名单,如果是其他的访问则 $invalid_referer 条件满足 return 403状态码或者用 rewrite的资源进行替换。
其他,valid_referers 还可以配置其他的参数:
valid_referers none blocked *.nginxcn.com;
none 表示直接在地址栏输入也可以访问到(请求头没有referer。)
blocked表示被防火墙过滤标记的请求。(这个我也没验证,有哪位大佬验证了,可以说下。)
*.nginxcn.com 这种就是域名的形式,当然也可以输入ip。(ip形式请不要用 http,这个我在nginx-1.10.3版本试了,如果带有http,可能没有被识别)。
链接:Nginx防盗链配置
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。