• Nginx


    nginx 日志默认文件名:

    • access.log
    • error.log

    为了方便查询及归档,将日志文件设置为按照日期来分割,配置如下:

    [root@nginx /usr/local/nginx/conf]#cat location.conf 
    map $time_iso8601 $logdate {
        default 'date-not-found';
        '~^(?<ymd>d{4}-d{2}-d{2})' $ymd;
    }
    

    map 指令是由 ngx_http_map_module 模块提供的,默认情况下安装 nginx 都会安装该模块。

    上面这配置文件使用关键字 map 来定义一个变量 $logdate

    如果 nginx 内置变量 $time_iso8601 通过正则能匹配到则 获取到 $logdate = $ymd 否则 $logdate = 'date-not-found'

    接下来,在主配置文件中引用:

    ...
    http {
        include       mime.types;
        include       location.conf;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  logs/access-$logdate.log  main;
        ...
    

    重载 nginx

    [root@nginx /usr/local/nginx/conf]#nginx -t
    nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    [root@nginx /usr/local/nginx/conf]#nginx -s reload
    

    注意:reload后日志文件不会马上生成,因为日期是通过 $time_iso8601  内置变量获取的。需要访问一下才会生成日志文件。

    [root@nginx ~]#curl localhost
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
             35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>
    [root@nginx ~]#ls /usr/local/nginx/logs/
    access.log  error.log  nginx.pid
    

    当访问触发以后,如果还没有生成日期格式的日志文件,则检查下 nginx 运行用户及目录属主属组!

    [root@nginx ~]#ll /usr/local/nginx/
    total 4
    drwx------ 2 root root    6 Nov 26  2016 client_body_temp
    drwxr-xr-x 2 root root 4096 Jul 30 16:27 conf
    drwx------ 2 root root    6 Nov 26  2016 fastcgi_temp
    drwxr-xr-x 2 root root   40 Nov 26  2016 html
    drwxr-xr-x 2 root root   87 Jul 30 16:20 logs
    drwx------ 2 root root    6 Nov 26  2016 proxy_temp
    drwxr-xr-x 2 root root   19 Nov 26  2016 sbin
    drwx------ 2 root root    6 Nov 26  2016 scgi_temp
    drwx------ 2 root root    6 Nov 26  2016 uwsgi_temp
    
    [root@nginx ~]#ps -ef | egrep nginx
    root     12916     1  0 16:20 ?        00:00:00 nginx: master process nginx
    nginx    12933 12916  0 16:27 ?        00:00:00 nginx: worker process
    root     12966 12879  0 17:47 pts/0    00:00:00 grep -E --color=auto nginx
    

    当访问触发以后,如果还没有生成日期格式的日志文件,则检查下 nginx 运行用户及目录属主属组!

    [root@nginx ~]#chown -R nginx:root /usr/local/nginx/
    [root@nginx ~]#ll /usr/local/nginx/
    total 4
    drwx------ 2 nginx root    6 Nov 26  2016 client_body_temp
    drwxr-xr-x 2 nginx root 4096 Jul 30 16:27 conf
    drwx------ 2 nginx root    6 Nov 26  2016 fastcgi_temp
    drwxr-xr-x 2 nginx root   40 Nov 26  2016 html
    drwxr-xr-x 2 nginx root   87 Jul 30 16:20 logs
    drwx------ 2 nginx root    6 Nov 26  2016 proxy_temp
    drwxr-xr-x 2 nginx root   19 Nov 26  2016 sbin
    drwx------ 2 nginx root    6 Nov 26  2016 scgi_temp
    drwx------ 2 nginx root    6 Nov 26  2016 uwsgi_temp
    
    # 再次访问,生成日志文件
    [root@nginx ~]#curl localhost
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
             35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>
    
    
    [root@nginx ~]#ll /usr/local/nginx/logs/
    total 12
    -rw-r--r-- 1 nginx root 270 Jul 30 17:48 access-2020-07-30.log
    -rw-r--r-- 1 nginx root   0 Nov 26  2016 access.log
    -rw-r--r-- 1 nginx root 412 Jul 30 16:27 error.log
    -rw-r--r-- 1 nginx root   6 Jul 30 16:20 nginx.pid
    
  • 相关阅读:
    利用Filter和拦截器,将用户信息动态传入Request方法
    Spring统一返回Json工具类,带分页信息
    ASP.NET MVC4 学习记录
    lightgbm 的简单实践案例
    numpy和pandas 各种比较常见的用法总结
    【数据预处理】如何将某一类别特征的极少数类别归为一类
    十大经典算法之Apriori 算法
    常用函数框架
    【解决方案】django初始化执行python manage.py migrate命令后,除default数据库之外的其他数据库中的表没有创建出来
    【解决方案】M2Crypto不支持python3
  • 原文地址:https://www.cnblogs.com/hukey/p/13407910.html
Copyright © 2020-2023  润新知