Nginx之防盗链及高可用解读
目录
防盗链解读
盗链是什么?
网页的加载顺序是先加载HTML相关的内容,然后解析HTML的内容,那些需要加载图片,那些需要加载文件,是逐步加载的,对于我们线上的图片等静态资源,经常会被其他网站盗用,外面可以我们请求到一个页面后,这个页面一般会再去请求其中的静态资源,这时候请求头中,会有一个refer字段,表示当前这个请求的来源,我们可以限制指定来源的请求才返回,否则就不返回,这样可以防止资源被盗用。
Referer理解
HTTP 协议中有一个用来表示“页面或资源”来源的“请求头”,这个请求头叫做 Referer --> Referer是表示请求是从哪个网址发出的
防盗链功能基于HTTP协议支持的 Referer 机制,通过Referer跟踪来源,对来源进行识别和判断
Nginx中配置防盗链
设置有效的refer值
- none:检测地址没有refer,则有效
- server_name:检测主机地址,refer显示是从这个地址来的,则有效(server_name必须是完整的
http://xxxx
)
注意:
if ($invalid_referer)
中if后有个空格,不写就会报错
这里设置nginx服务器中的img目录下的图片必须refer为http:192.168.174/134才能访问
- 如果引用这张图片的页面且对应refer并没有被设置,图片无法加载出来
- 如果直接访问图片地址,因为没有refer字段指向来源,会直接显示Nginx的页面
使用 curl 测试防盗链
设置盗链图片
将提示图片放在html/img/x.png,访问设置防盗链图片时,就返回这x.png张图
高可用解读
高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间
Nginx的高可用指的是在一台Nginx宕机的情况下有其他Nginx去处理请求。
Keepalived
- Keepalived是Linux下一个轻量级别的高可用解决方案,通过虚拟路由冗余协议来实现服务或者网络的高可用
- 起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态
- 如果某个服务器节点出现故障,Keepalived将检测到后自动将节点从集群系统中剔除
- 而在故障节点恢复正常后,Keepalived又可以自动将此节点重新加入集群中
- 这些工作自动完成,不需要人工干预,需要人工完成的只是修复出现故障的节点
如果 nginx master 出现宕机,keepalived则会将服务切到 nginx slave上,保证业务不受影响,这样就可以避免 nginx 单机故障问题,以此来实现高可用
Nginx中配置高可用
安装keepalived
修改keepalived配置
- 配置文件在/etc/keepalived/keepalived.conf
vrrp_instance
、authentication
、virtual_router_id
、virtual_ipaddress
这几个一样的机器,才算是同一个组里。这个组才会选出一个作为Master机器
这里我们设置两台机器,分别下载好keepalived,然后进行配置
机器一:
机器二:
通过命令ip addr
查看机器一的ip信息,可以看到虚拟IP
- 点赞
- 收藏
- 关注作者
评论(0)