nginx重写与防盗链

这篇具有很好参考价值的文章主要介绍了nginx重写与防盗链。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、ngx_http_rewrite_module作用:

二、ngx_http_rewrite_module模块指令:

  1. if 指令:

      1.1 格式:

    1.2 判断:

   1.3 示例:

    2. return:

    2.1 格式:

    2.2 示例:

 3. rewrite :

  3.1  格式:

  3.2 flag标记说明:

   3.3 示例:

三、防盗链:

  1. valid_referers  信息分类:

   2.盗链示例:

     2.1.服务器配置:

  2.2 小偷服务器配置:

   2.3  客户端配置:

3. 设置防盗链:

  3.1 服务器添加防盗链:


一、ngx_http_rewrite_module作用:

  用于实现URL的重写,URL的重写是非常有用的功能,比如它可以在我们改变网站结构之后,不需要客户端修改原来的书签,也无需其他网站修改我们的链接,就可以设置为自动访问

二、ngx_http_rewrite_module模块指令:

  1. if 指令:

    用于条件匹配判断,并根据条件判断结果选择不同的Nginx配置,可以配置在server或location块中进行配置,Nginx的if语法仅能使用if做单次判断,不支持使用if else或者if elif这样的多重判断

      1.1 格式:

if (条件匹配) {   
 action
}

    1.2 判断:

  = #比较变量和字符串是否相等,相等时if指令认为该条件为true,反之为false
  !=  #比较变量和字符串是否不相等,不相等时if指令认为条件为true,反之为false
  ~ #区分大小写字符,可以通过正则表达式匹配,满足匹配条件为真,不满足匹配条件为假
  !~ #区分大小写字符,判断是否匹配,不满足匹配条件为真,满足匹配条件为假

  ~* #不区分大小写字符,可以通过正则表达式匹配,满足匹配条件为真,不满足匹配条件为假
  !~* #不区分大小字符,判断是否匹配,满足匹配条件为假,不满足匹配条件为真


  -f 和 !-f #判断请求的文件是否存在和是否不存在
  -d 和 !-d #判断请求的目录是否存在和是否不存在
  -x 和 !-x #判断文件是否可执行和是否不可执行
  -e 和 !-e #判断请求的文件或目录是否存在和是否不存在(包括文件,目录,软链接)

   1.3 示例:

server{
  listen 80;
  listen 443 ssl;
   ssl_certificate /apps/nginx/conf.d/ssl/www.wzw.com.crt;
   ssl_certificate_key /apps/nginx/conf.d/ssl/www.wzw.com.key;
   ssl_session_cache shared:sslcache:20m;
   ssl_session_timeout 10m;
  server_name www.wzw.com;
  root /apps/nginx/html;

location /main {
     index index.html;
     default_type text/html;
     if ( $scheme = http ){
       echo "if-----> $scheme";     使用什么协议输出对应协议,需要证书哦
}
      if ( $scheme = https ){
       echo "if ----> $scheme";
   }
}
}

    2. return:

   return用于完成对请求的处理,并直接向客户端返回响应状态码,比如:可以指定重定向URL(对于特殊重定向状态码,301/302等) 或者是指定提示文本内容(对于特殊状态码403/500等),处于此指令后的所有配置都将不被执行,return可以在server、if 和 location块进行配置

    2.1 格式:

    www.kgc.com/test/
   404
   return code; #返回给客户端指定的HTTP状态码
   return code [text]; #返回给客户端的状态码及响应报文的实体内容,可以调用变量,其中text如果有空格,需要用单或双引号
   return code url; #返回给客户端的URL地址  

    2.2 示例:


location /test {
        default_type text/plain;
        return 302 http://www.baidu.com;
}


location /testt {
        default_type text/plain;
        return 301 http://www.wzw.com/pc;
}

301 缓存在磁盘上,建议使用301
302 没有缓存 , 服务器断开无法重定向

nginx重写与防盗链,nginx,运维

nginx重写与防盗链,nginx,运维

 3. rewrite :

  3.1  格式:

rewrite regex               replacement(www.baidu.com)        [flag];
        正则匹配原始访问url    替代你想让客户访问的               标志  ()premanent301 

  3.2 flag标记说明:

  • permanent :返回301永久重定向,浏览器地址栏会显示跳转后的URL地址。
  • redirect :返回302临时重定向,浏览器地址会显示跳转后的URL地址。
  • break :本条规则匹配完成即终止,不再匹配后面的任何规则,且URI不会发生变化。
  • last :本条规则匹配完成后,继续向下匹配新的location URI规则。

   3.3 示例:


server{
  listen 80;
  listen 443 ssl;
## 监听443
  ssl_certificate /apps/nginx/conf.d/ssl/www.wzw.com.crt;
## 指向包含当前虚拟主机和CA的两个证书信息的文件
 
  ssl_certificate_key /apps/nginx/conf.d/ssl/www.wzw.com.key;
## 当前虚拟主机使用的私钥文件,一般是key文件
 
  ssl_session_cache shared:sslcache:20m;
## 在各worker之间使用一个共享的缓存,需要定义一个缓存名称和缓存空间大小,一兆可以存储4000个会话信息,多个虚拟主机可以使用相同的缓存名称
 
  ssl_session_timeout 10m;
## 客户端连接可以复用ssl session cache中缓存的有效时长
  server_name www.wzw.com;
  root /apps/nginx/html/;
 
location / {
  root /apps/nginx/html;
  if ( $scheme = http ){
  rewrite ^/(.*)$ https://www.wzw.com/$1 redirect;  ##302跳
## 当$scheme为http时,重写为https  ^/(.*)$以/后所有   $1后向引用
 
}
}
}

三、防盗链:

    防盗链基于客户端携带的referer实现,referer是记录打开一个页面之前记录是从哪个页面跳转过来的标记信息,如果别人只链接了自己网站图片或某个单独的资源,而不是打开了网站的整个页面,这就是盗链,referer就是之前的那个网站域名。

  1. valid_referers  信息分类:

  1. none:#请求报文首部没有referer首部,比如用户直接在浏览器输入域名访问web网站,就没有referer信息。
  2. blocked:#请求报文有referer首部,但无有效值,比如为空。
  3. server_names:#referer首部中包含本主机名及即nginx 监听的server_name。
  4. arbitrary_string:#自定义指定字符串,但可使用*作通配符。示例: *.kgc.org www.kgc.*
  5. regular expression:#被指定的正则表达式模式匹配到的字符串,要使用~开头,例如:~.*\.kgc\.com

   2.盗链示例:

     2.1.服务器配置:
把图片放到/apps/nginx/html 下


vim   /apps/nginx/conf.d/www.conf 

server{
        listen 80;
        server_name  www.wzw.com;
        root    /apps/nginx/html;
 
}
  2.2 小偷服务器配置:
192.168.88.101机器:

systemctl start nginx     
systemctl  stop firewalld
setenforce 0

vim /apps/nginx/html/index.html

  <html>
  <body>
  <h1>this is yunjisuan  </h1>
  <img src="http://www.wzw.com/2.jpg"/> ##盗取www.wzw.com的图片
  </body>
  </html>

vim /apps/nginx/conf/nginx.conf

server_name www.dsj.com   ##基于域名的服务名称

vim /etc/hosts

192.168.88.100 www.wzw.com   ##域名解析
   2.3  客户端配置:

     C:\Windows\System32\drivers\etc\host

     打开添加  www.dsj.com 的IP地址。

     192.168.88.101  

真机测试:

nginx重写与防盗链,nginx,运维

3. 设置防盗链:

  3.1 服务器添加防盗链:
server块中添加防盗链:

vim /apps/nginx/conf.d/www.conf

location ~* \.(jpg|png|gif|swf|jpeg|bmp)$ {
  root /apps/nginx/html;
  valid_referers none blocked *.wzw.com wzw.com;
  if ( $invalid_referer ) {
  return  403;
}
}

   这时客户端再次访问盗图服务器时,图片会报403

nginx重写与防盗链,nginx,运维文章来源地址https://www.toymoban.com/news/detail-682084.html

到了这里,关于nginx重写与防盗链的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx优化&&安全&&防盗链

     在Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能。进行相关的配置修改,就能实现Nginx页面的压缩,达到节约带宽,提升用户访问速度 当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了

    2024年02月11日
    浏览(37)
  • nginx的优化和防盗链

    可以使用 Fiddler 工具抓取数据包,查看 Nginx版本, 也可以在 CentOS 中使用命令 curl -I http://192.168.81.129 显示响应报文首部信息。 方法一: 当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度 一

    2024年02月07日
    浏览(34)
  • nginx页面优化与防盗链

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 对版本号进行更改的目的:可以根据nginx的版本号进行破译,因此都会隐藏后端服务应用的真实版本号 1.1 查看版本号 1.2 修改版本号 1.2.1 修改配置文件 1.2.2 修改源码文件,重新编译安装 为什么做日志分

    2024年02月11日
    浏览(46)
  • Linux NGINX 优化与防盗链

    可以使用 Fiddler 工具抓取数据包,查看 Nginx版本, 也可以在 CentOS 中使用命令 curl -I http://192.168.80.101 显示响应报文首部信息。 curl -I http://192.168.80.101 方法一:修改配置文件方式 修改nginx配置,关闭版本号显示  重启服务,查看版本信息    方法二:修改源码文件,重新编译

    2024年02月07日
    浏览(41)
  • Nginx的优化,安全与防盗链

     在Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能。进行相关的配置修改,就能实现Nginx页面的压缩,达到节约带宽,提升用户访问速度   重启服务,进行访问测试:    压缩已经生成 (accept- Encoding) 当Nginx将网页数据返回给客户端后,可设置缓存的时间,以方

    2024年02月02日
    浏览(37)
  • Nginx的优化和防盗链(面试高频!!!)

    修改配置文件时,先备份!!!以便回滚!!! nginx页面优化 一、隐藏版本号: 方法一:修改配置文件 在http模块中,添加一个命令: 方法二:在源码包中修改(达到混淆入侵者的目的) 二、nginx的日志分割: 因为nginx不带日志分割工具,所以需要使用脚本形式来进行日志

    2024年02月14日
    浏览(35)
  • Nginx 禁止IP访问 只允许域名访问,以及Nginx防盗链设置

           我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了。今天要在Nginx上设置禁止通过IP访问服务器,只能通过域名访问,这样做是为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网。        下面我们就先看看Ngi

    2024年02月11日
    浏览(50)
  • Nginx服务优化措施、网页安全与配置防盗链

    目录 一.优化Nginx 二.隐藏/查看版本号 隐藏版本号方法一:修改配置文件,关闭版本号  隐藏版本号方法二:修改源码文件中的版本号,重新编译安装 三.修改用户与组 四.设置缓存时间 五.日志切割脚本 六.设置连接超时控制连接访问时间 七.开启多进程 八.配置网页压缩 九

    2024年02月07日
    浏览(45)
  • Nginx动静分离、资源压缩、负载均衡、黑白名单、防盗链等实战

    Nginx 是目前负载均衡技术中的主流方案,几乎绝大部分项目都会使用它, Nginx 是一个轻量级的高性能 HTTP 反向代理服务器,同时它也是一个通用类型的代理服务器,支持绝大部分协议,如 TCP、UDP、SMTP、HTTPS 等。 nginx.conf配置 Nginx 首先会根据配置的 location 规则进行匹配,根据

    2024年02月14日
    浏览(46)
  • Nginx重写跳转

    目录 一、rewrite跳转场景 二、rewrite跳转实现 三、rewrite实际场景 四、rewrite正则表达式 五、rewrite命令语法格式 六、location分类 1、location 大致可以分为三类 2、正则匹配的常用表达式 七、location 优先级 八、rewrite和location比较 九、总结 Rewrite 跳转场景主要包括以下几种: 1、可

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包