企業級Nginx增加日誌選項

2022-07-03 18:06:18 字數 2092 閱讀 5453

目的:將使用者的訪問資訊記錄到指定的檔案中由ngx_http_log_module模組負責

訪問日誌引數:

access_log:指定日誌檔案的路徑和使用何種日誌格式記錄日誌

log_format:用來指定日誌的格式

可以放置標籤段: main,http,server,location

日誌格式

新增日誌:

sed -i '1 i error_log  logs/error.log  error;' /usr/local/nginx/conf/nginx.conf
建立日誌路徑:

mkdir -p /usr/local/nginx/logs
1. 配置log_format(在http中配置)

sed -n '21,24p' nginx.conf.default
取出資訊後新增都nginx.conf的http模組中(server之前)

2. 配置access_log(最好在虛擬主機裡面配置,便於統計)

預設配置:#access_log  logs/access.log  main;

放置位置:http  server location

本機配置:在單獨的虛擬網域名稱的location後配置(注意封號)

server 

access_log logs/access_etiantian.log main;

}            # main 表示全域性,所有的訪問虛擬主機etianitian的都會打入

3. 配置windows的hosts解析c:\windows\system32\drivers\etc

4. 測試結果

瀏覽器訪問www.etiantian.com【注意,真實環境也有此ip,本次僅作實驗用,記得恢復hosts檔案】

1. 高併發可以寫入快取

access_log log/access_baobaotao.log main gzip buffer=32k flush=5s;
2. nginx訪問日誌的輪詢處理(日誌按天分割)   -->推薦

緣由:指定的訪問日誌長時間寫入會導致檔案過大而無法分析,可以使用切割指令碼

#!/bin/sh

dateformat=`date +%y%m%d`

basedir="/usr/local/nginx"

nginxlogdir="$basedir/logs"

logname="access_etiantian"

[ -d $nginxlogdir ] && cd $nginxlogdir||exit 1

[ -f $.log ] || exit 1

/bin/mv $.log $_$.log

$basedir/sbin/nginx -s reload

3.切割指令碼新增到定時任務

crontab –e
00 00 * * * /bin/sh cut_nginx.sh &>/dev/null
自帶:syslog  rsyslog

開源:flume logstash scrible awstats elk

Nginx運維 企業級優化

一 優化引數 1 引數與linux引數優化一致 2 nginx的健康檢查 二 keepalived介紹 1 keepalived服務介紹 2 keepalived故障切換轉移原理 3 vrrp協議介紹 4 keepalived工作原理 三 安裝keepalived 2 複製keepalived的啟動...

RedHat 6 5 企業級下安裝nginx

1.安裝相關nginx依賴庫檔案 yum y install gcc gcc c autoconf automake yum y install zlib zlib devel openssl openssl devel 2.安裝 3.解決問題 root yuanting nginx 1.12 2 ...

企業級API設計

最近對service的api設計,在team內有些討論,主要集中在api是足夠抽象 通用好呢,還是具體 易用好?其實這個是要折衷的,通用的好處是以後更改api的可能性小,但壞處是想要通用,裡面的字段就不能定義太死,不定義死,極端的例子是全部用name value pair,最通用,但client面對...