4.39 日誌不記錄靜態文件
4.40 日誌切割
4.41 靜態文件過時緩存
4.42 nginx防盜鏈css
擴展:node
yum install lrzsz -y rz 上傳文件 sz filename 這樣去把這個文件推送到windows上
1、日誌不記錄靜態文件linux
在訪問日誌裏,過濾掉一些圖片、js、css類的請求日誌。由於這樣的請求日誌沒多大用處,並且會佔用很大的磁盤空間
在虛擬主機配置文件裏增長配置: > 1.txt 能夠清空一個文件內容nginx
location ~* \.(png|jpeg|gif|js|css|bmp|flv)$ # ~* 表示不區分大小寫的匹配,\給後面的.脫義,.表示任意一個字符,$以括號中的爲結尾的 { access_log off; #關閉日誌 }
2、日誌切割vim
做用:避免日誌愈來愈大,可能有一天會把整個磁盤寫滿。windows
系統裏有一個日誌切割的服務:瀏覽器
logrotate 工具 配置文件: /etc/logrotate.conf 子配置文件:/etc/logrotate.d/*
Nginx的日誌切割配置文件:緩存
vim /etc/logrotate.d/nginx服務器
/var/log/nginx/*.log /data/logs/*.log { daily dateext missingok rotate 52 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate #重啓nginx,從新加載日誌文件,防止不寫 if [ -f /var/run/nginx.pid ]; then kill -USR1 `cat /var/run/nginx.pid` fi endscript }
測試執行:網絡
logrotate -vf /etc/logrotate.d/nginx -f 強制切割
日誌切割配置文件的配置參數說明:
compress |
經過gzip壓縮轉儲之後的日誌 |
nocompress |
不壓縮 |
copytruncate |
用於還在打開中的日誌文件,把當前日誌備份並截斷 |
nocopytruncate |
備份日誌文件可是不截斷 |
create mode owner group |
以指定的權限建立全新的日誌文件,同時logrotate也會重命名原始日誌文件 |
nocreate |
不創建新的日誌文件 |
delaycompress 和 compress |
一塊兒使用時,轉儲的日誌文件到下一次轉儲時才壓縮 |
nodelaycompress |
覆蓋 delaycompress 選項,轉儲同時壓縮。 |
errors address |
專儲時的錯誤信息發送到指定的Email 地址 |
ifempty |
即便是空文件也轉儲,這個是 logrotate 的缺省選項。 |
notifempty |
若是是空文件的話,不轉儲 |
mail address |
把轉儲的日誌文件發送到指定的E-mail 地址 |
nomail |
轉儲時不發送日誌文件 |
olddir directory |
轉儲後的日誌文件放入指定的目錄,必須和當前日誌文件在同一個文件系統 |
noolddir |
轉儲後的日誌文件和當前日誌文件放在同一個目錄下 |
prerotate/endscript |
在轉儲之前須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行 |
postrotate/endscript |
在轉儲之後須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行 |
daily |
指定轉儲週期爲天天 |
weekly |
指定轉儲週期爲每週 |
monthly |
指定轉儲週期爲每個月 |
rotate count |
指定日誌文件刪除以前轉儲的次數,0 指沒有備份,5 指保留5 個備份 |
tabootext [+] list 讓logrotate |
不轉儲指定擴展名的文件,缺省的擴展名是:.rpm-orig, .rpmsave, v, 和 ~ |
size size |
當日志文件到達指定的大小時才轉儲,bytes(缺省)及KB(sizek)或MB(sizem) |
dateext |
使用日期的後綴格式 |
missingok |
在日誌輪循期間,任何錯誤將被忽略,例如「文件沒法找到」之類的錯誤 |
3、靜態文件過時緩存
讓圖片之類的靜態文件,緩存在客戶端的瀏覽器中,在沒有過時以前,瀏覽器不須要請求該圖片。 就是爲了讓這些圖片有一個時效性。 若是服務器上圖片已經作了更新,可是客戶端訪問到的仍是舊的。
curl -x 用來指定目標服務器的IP和端口,例: curl -x127.0.0.1:80 discuz.tobe.com -I
bc 是一個linux系統下面的計算器,yum install -y bc
經過修改虛擬主機配置文件,增長或更改:
vim /etc/nginx/conf.d/discuz.tobe.com.conf
location ~* \.(png|jpeg|gif|js|css|bmp|flv)$ { expires 1d; #過時時間爲1天 access_log off; } nginx -t nginx -s reload
此時過時時間爲一天
4、nginx防盜鏈
兩個網站 A 和 B, A網站引用了B網站上的圖片,這種行爲就叫作盜鏈。
防盜鏈,就是要防止A引用B的圖片。
A(discuz.tobe.com)、B(www.tobeblog.com)
此時B網站下有一個1.png圖片,使用A網站進行發帖子,上傳網絡圖片:http://www.tobeblog.com/1.png的形式,叫作盜鏈。
由於是A盜取B網站的圖片,因此到B網站進行配置防盜鏈:
vim /etc/nginx/conf.d/blog.tobe.com.conf blog.tobe.com.conf(www.tobeblog.com是以前給blog.tobe.com作的重定向)
location ~ \.(png|gif|jpeg|bmp|mp3|mp4|flv)$ { valid_referers none blocked server_names *.jiang.com; #設置哪一個網站能夠引用圖片(白名單) if ($invalid_referer) { return 403; } access_log off; #關閉日誌 expires 1d; #過時時間 } nginx -t nginx -s reload
ctrl+F5刷新頁面後,1.png返回403,而B網站能夠正常訪問
測試防盜鏈:
curl的-e指定自定義的referer curl -x127.0.0.1:80 -e "http://www.jiang.com/1.txt" http://www.tobeblog.com/1.png -I *.jiang.com爲白名單,因此能夠訪問