nginx配置文件,以 “ ; ” 分號結尾,配置文件一段如果沒有 分號結尾,表示這一段還沒有結束,就算中間執行了換行。

$remote_addr //客戶端IP(公網IP) $http_x_forwarded_for //代理服務器的IP $time_local //服務器本地時間 $host //訪問主機名(域名) $request_uri //訪問的url地址 $status //狀態碼 $http_referer //referer (跳轉頁) $http_user_agent //user_agent(標識)

定義虛擬主機日志
打開虛擬主機配置文件
在server項內任意一行加入下面這個配置

access_log /tmp/test.com.log combined_realip;

配置好以后
檢查語法 && 重新加載服務

-t && -s reload

測試是否產生日志

[root@aminglinux-02 ~]# curl -x127.0.0.1:80 test2.com/admin/index.html -I HTTP/1.1 301 Moved Permanently Server: nginx/1.12.1 Date: Fri, 11 Aug 2017 16:51:26 GMT Content-Type: text/html Content-Length: 185 Connection: keep-alive Location: http://test.com/admin/index.html [root@aminglinux-02 ~]# curl -x127.0.0.1:80 test2.com -I HTTP/1.1 301 Moved Permanently Server: nginx/1.12.1 Date: Fri, 11 Aug 2017 16:51:31 GMT Content-Type: text/html Content-Length: 185 Connection: keep-alive Location: http://test.com/ [root@aminglinux-02 ~]# curl -x127.0.0.1:80 test1.com -I HTTP/1.1 200 OK Server: nginx/1.12.1 Date: Fri, 11 Aug 2017 16:51:36 GMT Content-Type: text/html Content-Length: 26 Last-Modified: Thu, 10 Aug 2017 16:27:09 GMT Connection: keep-alive ETag: "598c895d-1a" Accept-Ranges: bytes [root@aminglinux-02 ~]# cat /tmp/test.com.log 127.0.0.1 – [12/Aug/2017:00:51:17 0800] test3.com "/admin/index.html" 301 "-" "curl/7.29.0" 127.0.0.1 – [12/Aug/2017:00:51:26 0800] test2.com "/admin/index.html" 301 "-" "curl/7.29.0" 127.0.0.1 – [12/Aug/2017:00:51:31 0800] test2.com "/" 301 "-" "curl/7.29.0" 12.11 Nginx日志切割

nginx沒有自帶日志切割工具
只能借助系統自帶的工具或者使用腳本實現

創建shell腳本

規則:所有的shell的腳本,全部存放在/usr/local/sbin/ 目錄下

[root@aminglinux-02 ~]# vim /usr/local/sbin/nginx_logrotate.sh #! /bin/bash ## 假設nginx的日志存放路徑為/data/logs/ d=`date -d "-1 day" %Y%m%d` // 生成昨天的日期,格式為年月日 logdir="tmp/" // 上一節的時候,定義了日志存放在/tmp/目錄下 nginx_pid="/usr/local/nginx/logs/nginx.pid" //查找nginx的PID cd $logdir //進入“logdir”目錄 for log in `ls *.log` //開始語句循環,看錯有哪些 log后綴的文件 do //執行 mv $log $log-$d //將 log改名為《原名字-“`date -d "-1 day" %Y%m%d` ”這個結尾的文件 》 done //結束 /bin/kill -HUP `cat $nginx_pid` // 重新加載,生成一個新的“ nginx_pid="/usr/local/nginx/logs/nginx.pid" ”

執行腳本

sh -x /usr/local/sbin/nginx_logrotate.sh

-x選項使運行過程可見

[root@aminglinux-02 ~]# sh -x /usr/local/sbin/nginx_logrotate.sh date -d \\\’-1 day\\\’ %Y%m%d d=20170811 logdir=/tmp/ nginx_pid=/usr/local/nginx/logs/nginx.pid cd /tmp/ ls test.com.log for log in \\\’`ls *.log`\\\’ mv test.com.log test.com.log-20170811 cat /usr/local/nginx/logs/nginx.pid /bin/kill -HUP 1202 知識點: 一、日志時間切割的定義

寫shell腳本的時候,如果有命令不明白,可以直接把命令運行一下就知道結果了
假設這個命令“ d=date -d "-1 day" %Y%m%d ”不明白意思
ctrl z 把當前操作暫停丟到后臺
運行命令看看結果

[root@aminglinux-02 ~]# date -d "-1 day" %Y%m%d 20170811 [root@aminglinux-02 ~]# date 2017年 08月 12日 星期六 01:04:07 CST

就是時間,而且是昨天的時間,因為目前做的日志切割都是以天為單位,而且,日志需要過了當天23點59分59秒以后到第二天的0點0分01秒才切割

二、指定PID路徑的意義 “ nginx_pid="/usr/local/nginx/logs/nginx.pid" ”這條命令的意思,就是指定nginx的PID 的路徑所在 如果找不到指定PID的所在,那么下面的“ /bin/kill -HUP cat $nginx_pid ”這個命令也將沒有辦法繼續執行 “ /bin/kill -HUP cat $nginx_pid ” z這條命令的意思就是重新加載一次nginx服務 執行“ /bin/kill -HUP cat $nginx_pid ”這條命令的目的是因為切割日志以后 “mv $log $log-$d ” 會將日志移動位置,如果不使用這條命令重新加載一次nginx服務、重新生成一次日志文件,那么將會導致服務出錯 所以,為了保證“ /bin/kill -HUP cat $nginx_pid ”能準確的執行,需要確定nginx的PID所在

[root@aminglinux-02 ~]# ls /usr/local/nginx/logs/ access.log error.log nginx_error.log nginx.pid 三、 循環語句理解

for f in \\\’ls \\\’ ; do ls -l $f; done

for 循環開始,f 表示文件,in 表示做什么,‘ls’in執行的東西; do 執行 ls -f $f;done 結束

任務計劃

腳本寫完以后,需要寫一個計劃,讓腳本在規定的時間運行。

crontab -e 0 0 * * * /bin/bash /usr/local/sbin/nginx_logrotate.sh

==長時間累積,會生成大量的日志需要進行清理==

fidn /tmp/ -type f -name *.log-* -mtime 30 |xargs rm 12.12 靜態文件不記錄日志和過期時間

打開虛擬主機配置文件

[root@aminglinux-02 ~]# vim /usr/local/nginx/conf/vhost/test.com.conf location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ //匹配gif|jpg|jpeg|png|bmp|swf 后綴的文件 { expires 7d; //7天后過期 access_log off; //匹配“.*.(gif|jpg|jpeg|png|bmp|swf) ”關閉記錄日志 } location ~ .*.(js|css)$ { expires 12h; //12個小時后過期 access_log off; //匹配“.*.(js|css) ”關閉記錄日志 }

配置完成后檢查語法和重新加載服務

-t && -s reload

測試配置是否成功
為了方便測試線創建2個文件

[root@aminglinux-02 ~]# vim /data/wwwroot/test.com/1.gif [root@aminglinux-02 ~]# vim /data/wwwroot/test.com/2.js

測試是否記錄日志

[root@aminglinux-02 ~]# curl -x127.0.0.1:80 test.com/2.js 2.js 2.js 2.js 2.js 2.js 2.js 2.js 2.js 2.js 2.js 2.js [root@aminglinux-02 ~]# curl -x127.0.0.1:80 test.com/1.gif 1.gif 1.gif 1.gif 1.gif 1.gif 1.gif 1.gif 1.gif 1.gif 1.gif 1.gif [root@aminglinux-02 ~]# !cat cat /tmp/test.com.log 127.0.0.1 – [12/Aug/2017:01:48:01 0800] test.com "/" 200 "-" "curl/7.29.0" 127.0.0.1 – [12/Aug/2017:01:50:13 0800] test.com "/2.jsfsdfe" 404 "-" "curl/7.29.0"

測試結果,并沒有記錄 測試是否有過期時間

[root@aminglinux-02 ~]# curl -x127.0.0.1:80 test.com/1.gif -I HTTP/1.1 200 OK Server: nginx/1.12.1 Date: Fri, 11 Aug 2017 17:52:33 GMT Content-Type: image/gif Content-Length: 66 Last-Modified: Fri, 11 Aug 2017 17:51:27 GMT Connection: keep-alive ETag: "598dee9f-42" Expires: Fri, 18 Aug 2017 17:52:33 GMT Cache-Control: max-age=604800 //這就是過期時間 Accept-Ranges: bytes [root@aminglinux-02 ~]# curl -x127.0.0.1:80 test.com/2.js -I HTTP/1.1 200 OK Server: nginx/1.12.1 Date: Fri, 11 Aug 2017 17:52:51 GMT Content-Type: application/javascript Content-Length: 57 Last-Modified: Fri, 11 Aug 2017 17:51:59 GMT Connection: keep-alive ETag: "598deebf-39" Expires: Sat, 12 Aug 2017 05:52:51 GMT Cache-Control: max-age=43200 //這就是過期時間 Accept-Ranges: bytes

更多關于云服務器域名注冊,虛擬主機的問題,請訪問三五互聯官網:m.shinetop.cn

贊(0)
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。郵箱:3140448839@qq.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:三五互聯知識庫 » 12.10 Nginx訪問日志 12.11 Nginx日志切割12.12 靜態文件不記錄日志和過期時間

登錄

找回密碼

注冊

主站蜘蛛池模板: 好爽毛片一区二区三区四| 午夜射精日本三级| 久久综合久中文字幕青草| 国内揄拍国内精品人妻| 亚洲欧美综合精品二区| 欧美大胆老熟妇乱子伦视频 | 国产成人午夜福利在线小电影| 熟妇人妻激情偷爽文| 人妻护士在线波多野结衣| 粉嫩小泬无遮挡久久久久久| 婷婷六月色| 91精品午夜福利在线观看| 国产极品粉嫩尤物一区二区| 91亚洲一线产区二线产区| 久久精品免视看国产成人| 国产毛片三区二区一区| 亚洲午夜无码久久久久蜜臀av| 少妇又爽又刺激视频| 真人作爱免费视频| 亚洲人ⅴsaⅴ国产精品| 欧美 变态 另类 人妖| 泰安市| 久久综合亚洲鲁鲁九月天| 国产资源精品中文字幕| 中文字幕乱码在线播放| 亚洲国产成人无码电影| 少妇粗大进出白浆嘿嘿视频| 成人福利一区二区视频在线| 日韩精品一二区在线观看| 国产97人人超碰CAO蜜芽PROM| 麻豆av一区二区天美传媒| 久久se精品一区精品二区国产| 天天躁日日躁狠狠躁一区| 国产高清在线精品一区二区三区| 亚洲av伦理一区二区| 国产毛片子一区二区三区| 一区二区三区国产亚洲自拍| 色成人亚洲| 亚洲偷自拍国综合| 免费观看日本污污ww网站69| 五月开心六月丁香综合色啪|