這裏的服務器地址爲虛擬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,並清除瀏覽器緩存,再次訪問能夠看到圖片掛了
歡迎各×××陳師傅」