这里的服务器地址为虚拟ip,由于我是在个人三台云主机上操做的
192.168.0.10 nginx前端
192.168.0.20 httpd(用于读)
192.168.0.30 httpd(用于写)html
Web分布式创做和版本控制(WebDAV)是超文本传输协议(HTTP)的扩展,容许客户端执行远程Web内容创做操做。实质上,它使Web服务器能够充当文件服务器,容许做者在Web内容上进行协做。使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还能够支持文件的版本控制。各类服务器都支持WebDAV,包括Apache,Microsoft的Internet信息系统,SabreDAV,Nginx,ownCloud和Nextcloud。前端
vim /etc/httpd/conf/httpd.conf <Directory "/var/www/html"> Dav on </Directory>
systemctl restart httpd
nginx
为防止网站访问权限不足,须要分别为读写服务器的网站目录授予访问权限apache
setfacl -m u:apache:rwx /var/www/html/
[root@192.168.0.20]# echo 192.168.0.20 > /var/www/html/index.html [root@192.168.0.30]# echo 192.168.0.30 > /var/www/html/index.html
分别往读写服务器上上传文件,写服务器成功上传,因为读服务器没有开启WebDAV功能,因此读服务器报405错误。 vim
curl -T zz.txt http://192.168.0.20 (读服务器) curl -T zz.txt http://192.168.0.30 (写服务器)
在写服务器的网站根目录也能够看到上传的文件 浏览器
location /wanger { root html; index index.html index.htm; proxy_pass http://192.168.0.20/; if ($request_method = "PUT"){ proxy_pass http://192.168.0.30; } }
nginx -s reload
[root@192.168.0.10 ~]# curl 127.0.0.1/ 192.168.0.20 [root@192.168.0.10 ~]# curl -T sh.txt 127.0.0.1/
能够看到写服务器已经存在咱们刚上传的文件了,读写分离测试完成缓存
盗链指的是经过一些技术手段来获取他人服务器上的资源来展现在本身的网站上,而在本身的服务器并无存储这个资源,经过盗链,使他人的的网站服务器压力负担变大。经过借助nginx的ngx_http_referer_module模块的valid_referers指令能够防止盗链,可是referer是能够伪造的,所以也只能防住一部分的盗链。服务器
语法 | valid_referers none丨 blocked丨 server_names 丨 string ...; |
---|---|
默认 | - |
应用位置 | server,location |
首先准备两台服务器,地址分别为172.17.51.80,172.17.51.90,其中172.17.51.80为被盗链服务器,咱们首先配置一下172.17.51.80的图片地址,将图片放入网站根目录 curl
而后配置172.17.51.90服务器进行盗链HTML的配置,在网站根目录下编辑index.html,并添加172.17.51.80的图片连接
html代码以下: 分布式
<a href="www.baidu.com"> <img src="http://172.17.51.80/a.jpg" /></a>
而后访问172.17.51.90查看盗链效果,盗链成功,这里我使用的是个人两台云主机
修改172.17.51.80配置,对referer头进行过滤
location ~ .*\.(jpg|gif|png)$ { valid_referers none blocked .*wanger.com; if ($invalid_referer) { #rewrite ^/ http://$host/403.png; return 403; } }
修改完成后重载nginx,并清除浏览器缓存,再次访问能够看到图片挂了
欢迎各×××陈师傅”