在企业网站中,一般都要配置防盗链功能,以免网站的内容被非法盗用,造成损失;配置nginx防盗链很简单,只需要在nginx配置文件中加入一段条件跳转语句即可。
在vmware虚拟机中开2台linux主机,一台源主机,一台盗链主机。
配置Nginx源主机----》》配置盗链主机-----》》查看结果-----》》配置防盗链----》》查看结果
安装Nginx
安装环境依赖包
[root@localhost ~]# yum -y install gcc gcc-c++ pcre-devel zlib-devel
在nginx官网下载安装包(我这边用的1.12.2版本),解压到opt目录,创建程序用户。
[root@localhost LNMP-C7]# tar zxvf nginx-1.12.2.tar.gz -C /opt
[root@localhost LNMP-C7]# useradd -M -s /sbin/nologin nginx
进入解压的/opt/nginx-1.12.2/目录中执行configure脚本
[root@localhost LNMP-C7]# cd /opt/nginx-1.12.2/
[root@localhost nginx-1.12.2]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module
编译并安装
[root@localhost nginx-1.12.2]# make && make install
在nginx首页html中插入图片
[root@localhost nginx-1.12.2]# cp /home/LNMP-C7/mao.jpg /usr/local/nginx/html/
[root@localhost nginx-1.12.2]# cd /usr/local/nginx/html
[root@localhost html]# ls
50x.html index.html mao.jpg
[root@localhost html]# vim index.html
Welcome to nginx!
##加入的图片
创建软连接方便命令管理,关闭防火墙启动nginx服务。
[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin
[root@localhost nginx-1.12.2]# systemctl stop firewalld.service ##关闭防火墙
[root@localhost nginx-1.12.2]# setenforce 0
[root@localhost nginx-1.12.2]# nginx ##启动nginx
[root@localhost nginx-1.12.2]# netstat -ntap | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 7996/nginx: master
修改hosts文件,设置域名和IP映射关系
[root@localhost html]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.5.142 www.yuan.com
安装apache服务
[root@localhost ~]# yum install httpd -y
修改hosts文件,设置域名和IP映射关系
[root@localhost ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.5.143 www.daolian.com
192.168.5.142 www.yuan.com
配置apache首页,配置盗链
[root@localhost ~] vim /var/www/html/index.html
this is dao lian
##盗链路径
启动apache服务,访问apache首页,发现可以直接盗链源主机的图片
[root@localhost ~]systemctl start httpd
在源主机Nginx配置文件中加入防盗链规则
注意:该规则需要放在sever段落中
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
location ~* \.(jpg|gif|swf)$ {
valid_referers none blocked www.yuan.com; ###指定可以访问域名
if ($invalid_referer) { ##如果不是该域名
rewrite ^/ http://www.yuan.com/error.png; ##则跳转到错误页面
}
}
[root@localhost ~]# cp /home/LNMP-C7/error.png /usr/local/nginx/html/
[root@localhost ~]# ls /usr/local/nginx/html/
50x.html error.png index.html mao.jpg