// 全局區 worker_processes 1; // 有1個工做的子進程,能夠自行修改,但太大無益,由於要爭奪CPU,通常設置爲 CPU數*核數 Event { // 通常是配置nginx鏈接的特性 // 如1個word能同時容許多少鏈接 worker_connections 1024; // 這是指 一個子進程最大容許連1024個鏈接 } http { //這是配置http服務器的主要段 Server1 { // 這是虛擬主機段 Location { //定位,把特殊的路徑或文件再次定位 ,如image目錄單獨處理 } /// 如.php單獨處理 } Server2 { } }
server { listen 80; #監聽端口 server_name a.com; #監聽域名 location / { root /var/www/a.com; #根目錄定位 index index.html; } }
server_name a.com;這個a.com不是咱們的,因此須要修改windows電腦上的hosts,在其最後面添加一行,其中192.168.8.222 是你nginx配置的服務器IP,是啥你就寫啥:php
192.168.8.222 a.com
root /var/www/a.com 可能不存在,若不存在,請自行添加;html
index index.html index.html也是如此,自行添加;linux
server { listen 8080; server_name 192.168.1.204; location / { root /var/www/html8080; index index.html; } }
注意事項和基於域名的配置同樣,請自行翻閱查看nginx
咱們觀察nginx的server段,能夠看到以下相似信息**#access_log logs/host.access.log main;**,這說明 該server, 它的訪問日誌的文件是 logs/host.access.log , 使用的格式」main」格式. 除了main格式,你能夠自定義其餘格式.shell
默認的main配置以下:windows
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
main 格式信息介紹bash
格式 | 信息 |
---|---|
remote_addr | 遠程IP |
remote_user | 遠程用戶/用戶時間 |
time_local | 用戶時間 |
request | 請求方法,協議 |
status | 請求方法(如GET/POST) |
body_bytes_sent | 請求body長度 |
http_referer | referer來源信息,就是你是從哪裏訪問過來的,百度/谷歌 |
http_user_agent | 用戶代理/蜘蛛 ,被轉發的請求的原始IP |
http_x_forwarded_for | 在通過代理時,代理把你的原本IP加在此頭信息中,傳輸你的原始IP |
日誌文件中記錄信息示例以下(與main格式相對應):服務器
192.168.8.108 - - [28/Jun/2018:19:01:52 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36"
[root@localhost nginx]# cd logs/ [root@localhost logs]# mv z.com.access.log z.com.access.log1 [root@localhost logs]# ll 總用量 20 -rw-r--r--. 1 root root 776 6月 23 16:00 access.log -rw-r--r--. 1 root root 6220 6月 29 10:02 error.log -rw-r--r--. 1 root root 6 6月 29 09:30 nginx.pid -rw-r--r--. 1 root root 1232 6月 29 10:02 z.com.access.log1 [root@localhost logs]# tail -f z.com.access.log1 192.168.8.108 - - [29/Jun/2018:10:02:52 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:61.0) Gecko/20100101 Firefox/61.0" "-"
確實按照咱們一向的理解,應該會從新生成一個z.com.access.log 進行輸出,但linux 的輸出是針對掛在點的,重命名並不會改變log文件的掛載點。學習
shell腳本runlog.sh以下.net
#!/bin/bash echo "--------日誌切割start----------" LOGPATH=/usr/local/nginx/logs/z.com.access.log BASEPATH=/data BACKUPS_PATH=$BASEPATH/$(date -d yesterday +%Y%m%d%H%M).z.com.access.log mv $LOGPATH $BACKUPS_PATH touch $LOGPATH kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid) echo "--------日誌切割end----------"
說明:
上面的日誌切割確實完成的日誌的切割操做,但每次執行都要手動的執行,太雞兒費勁了,何不整個定時任務了,每分鐘執行一次,操做以下:
# crontab –e */1 * * * * runlog.sh
crontab 相關操做,及其定時任務的學習,請參考:https://my.oschina.net/ahusky/blog/1837896
日誌分隔 參見:https://www.nginx.com/resources/wiki/start/topics/examples/logrotation/