Nginx的平滑升级与版本回退、防盗链

一、平滑升级

平滑升级可以做到在线升级,保证不影响客户的使用,不打断用户请求,并且升级后新版本对服务端的数据也不会覆盖。
前提条件:已经安装了nginx的旧版本。我这里的是将安装好的nginx-1.18.0 升级为 nginx-1.19.2。具体编译可以参考nginx的安装与源码编译
第一步:从官网下载需要升级的新版本
第二步:编译新的nginx版本

注意的是:新版本的编译过程中,执行./configure时一定要和老版本执行的语句一模一样,编译完成后只需要执行make,不需要执行make install。

[root@servera Download]# tar zxf nginx-1.19.2.tar.gz 
[root@servera Download]# cd nginx-1.19.2/
[root@servera nginx-1.19.2]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module
[root@servera nginx-1.19.2]# make

第三步:将旧版本的启动脚本备份

[root@servera nginx-1.19.2]# cd /usr/local/nginx/sbin/		#/usr/local/nginx为旧版本的安装路径
[root@servera sbin]# ls
nginx
[root@servera sbin]# cp nginx nginx.old
[root@servera sbin]# ls
nginx  nginx.old
[root@servera sbin]# 

第四步:用新版本的二进制程序文件覆盖旧版本的启动脚本

[root@servera objs]# cp -f /root/Download/nginx-1.19.2/objs/nginx /usr/local/nginx/sbin/

第五步:将原先在旧的配置下启动的worker杀死,然后使用新的配置创建新的worker

[root@servera sbin]# ps -ef |grep nginx		//查看nginx进程 注意:旧版本的启动是使用脚本的方式启动
[root@servera sbin]# kill -USR2 25915		//旧版本停止接收请求,并开启新的master产生新的worker,完成平滑升级
[root@servera sbin]# kill -WINCH 25915		//等待旧版本处理完,关闭worker进程

在这里插入图片描述
在这里插入图片描述
如果不考虑回退,也可以直接使用kill -QUIT 25915结束老版本的master

二、版本回退

第一步:先还原nginx脚本,旧版本备份的二进制程序覆盖新版本

[root@servera sbin]# cp -f /usr/local/nginx/sbinnginx.old /usr/local/nginx/sbinnginx

第二步:重新唤起旧版本的master进程,让其接收请求;让新版本的master进程不再接收请求,关闭新版本的worker进程

[root@servera sbin]# kill -HUP 25915		//启动旧版本的worker进程
[root@servera sbin]# kill -USR2 25934		//新版本不再接收请求
[root@servera sbin]# kill -WINCH 25934		//关闭新版本的masterr进程
[root@servera sbin]# kill -9 25934		//关闭新版本的masterr进程

在这里插入图片描述

三、防盗链

概述:有A、B两个网站。如果A网站想使用B网站的图片,可以直接写上B网站图片的链接地址,但如果B网站不想A网站这么做,那么B网站可以采取防盗链的措施。导致的结果就是,A网站想请求所需要的资源,通过url的方式,获取的可能不是原来的图片了,出现404或者别的图片替代了。如果通过浏览器直接打开图片url,那么仍然有可能显示404,这就是防盗链。
实验环境:

主机名serveraserverb
IP192.168.1.136192.168.1.116
职能nginx服务器 提供访问资源nginx服务器 进行盗链操作

在servera上添加图片资源:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当serverb进行盗链

[root@serverb ~]# vim /usr/local/nginx/conf/nginx.conf
http {
   server {
        listen       80;
        server_name  localhost;
        location / {
            root   /daolian;		
            index  daolian.html;	//添加盗链的访问页面
        }
}
[root@serverb ~]# mkdir /daolian
[root@serverb ~]# cd /daolian
[root@serverb daolian]# vim daolian.html 	//完成盗链的脚本
<html>
<body>
<img src="http://www.westos.org/test.jpg">	//指定盗链的源路径
</body>
</html>
[root@serverb daolian]# nginx -s reload			
//此处是已经添加了软链接 ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

在这里插入图片描述
在这里插入图片描述
在servera中设置防止盗链

[root@servera nginx]# vim /usr/local/nginxconf/nginx.conf
   server {
      listen       80;
      server_name www.westos.org;
        
      location ~\.(gif|jpg|png|jpeg)$ {
         valid_referers none blocked www.westos.org;	#valid_referers 表示可用的 referers 设置;#none 表示没有 referers,直接通过浏览器或者其他工具访问;blocked 表示有referers,但是被代理服务器或者防火墙隐藏;表示通过www.westos.org访问的referers
         if ($invalid_referer) {	#$invalid_referer:当请求的 refer 是合法的,可以被后面任一参数所匹配, $invalid_referer 的值为0,若不匹配则值为 1
            return 403;		#第一种返回403错误
            #rewrite ^/ http://bbs.westos.org/daolian.jpg;	//第二种重定向到指定站点图片
                    }
              }
       }
////////////////当使用第二种是需要在配置文件中添加以下设置/////////
     server {
        listen       80;
        
        server_name bbs.westos.org;
         location / {
               root /bbs;		//需要手动建立此目录,并且在此目录下存放重定向的图片资源
               index index.html;
               }
        }

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值