nginx虚拟主机配置及日志管理

nginx虚拟主机配置及日志管理

Scroll Down

nginx配置介绍

nginx虚拟主机配置(附带配置解释)

worker_processes : 1 ; # 有1个工作子进程,可以自行修改,但超过一定没有意义,因为要争夺cpu,所以一般设置为 CPU数*核数

Event{
    # 此处一般是配置nginx连接与特性
    worker_connections 1024;# 这是指 一个子进程最大允许连接 1024 个

}

http{# 此处配置http服务的主要段

    Server{ # 这虚拟主机段
    
        Location / { # 定位,把特殊的路径或者文件再次定位,如image目录单独处理,php文件等。
              root /www/wwwroot/xxx.com # 根目录定位
              index.html index.php # 默认加载的入口文件
         }
         listen 80; # 监听端口号
         server_name xxx.com; # 监听域名、IP、端口
         

     }

}

日志管理

日志内容解释

在nginx的server段,有以下信息:

#access_log logs/host.access.log main

这说明 该server,它访问的日志文件是 logs/host.access.log

使用的是 main 格式,除了 main 格式可以自定义其他格式

main 格式是什么?

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

main 格式是默认定义的一个格式,但没有确认什么日志格式时,便默认使用 main 格式

  • $remote_addr 指 是访问网站 IP 地址

  • $remote_user 指 是访问网站名字/用户

  • $time_local 指 是用户访问的时间

  • $request 指 是请求方法(POST/GET)

  • $status 指 是请求返回的状态(200,404,304,500等)

  • $body_bytes_sent 指 是请求体body的长度

  • $http_referer 指 是 referer 来源信息

  • $http_user_agent 指 是用户代理/蜘蛛(爬虫),被转发的原始请求 IP

  • $http_x_forwarded_for 指 是在经过代理时,代理把本来的 IP 加在此头信息中,传输原始的 IP

日志分割

使用 shell 命令加定时任务完成,每天将 nginx目录下的log文件复制到指定文件,并重新生成。最后使用信号管理或者其他方式,重载nginx日志文件,从而完成日志分割。