// 全局区 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/