對nginx的一些小優化的記錄,例如日誌的切割,日誌的分析,以及參數的配置等等,會持續的進行更新。
1、nginx日誌切割腳本
需求來源:nginx本身並沒有日誌切割的功能,由訪問產生的大日誌很難進行分析。
實現目的:每天對nginx日誌進行切割,並備份至指定文件夾。
簡要指令:
mv /usr/local/tengine/logs/access.log /usr/local/tengine/logs/access-date.log kill -USER1 Nginx主進程號。 解釋: 通過mv命令重命名日誌,並且通過kill -USER1 nginx-id的命令,告訴nginx需要寫新的日誌。 我們可以通過nginx.pid文件來獲取nginx的主進程號。 kill -USER1`cat /usr/local/tengine/logs/nginx.pid` PS:如果不知道nginx.pid文件在哪的話,可以直接在nginx目錄,或者伺服器根目錄搜索:find / -name nginx.pid 詳細腳本如下: ####################################################################### #!/bin/bash logs_bak_path="/usr/local/tengine/logs/nginx_log" logs_path="/usr/local/tengine/logs" TIME=`date "+%Y-%m-%d"` mv $logs_path/access.log $logs_bak_path/access.$TIME.log kill -USER1`cat /usr/local/tengine/logs/nginx.pid` ####################################################################### 將腳本保存至nginx的sbin目錄,與nginx主程式同級。 然後使用crontab -e打開linux的定時執行編輯,增加如下配置: 59 23 * * * . /root/.bash_profile; /usr/local/tengine/sbin/cut_nginx_log.sh >/dev/null 2>&1 如果要分析日誌的話,大家可以使用:goaccess 這個工具對日誌進行分析,稍後會單開一個隨筆,單獨介紹nginx的日誌分析。