访问日志 access.log 按日期生成

根据访问nginx配置文件

日志路径

/usr/local/nginx/logs/
其中把访问日志记录位置

/usr/local/nginx/logs/access/域名/$year-$month-$day-$hour-access.log
错误日志

/usr/local/nginx/logs/error/域名/error_域名.log error;

生产场景一般是 warn | error | crit 这三个级别之一,错误日志级别默认为error

使用nginx配置自动实现访问日志按日期存放,杜绝一个大文件存放

$time_iso8601 生成格式: 2018-01-04T15:00:35+08:00
$time_local 生成格式: 04/Jan/2019:15:00:07 +0800
需要在对应的server 块中加入

if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})")
    {
            set $year $1;
            set $month $2;
            set $day $3;
            set $hour $4;
            set $minutes $5;
            set $seconds $6;
    }
访问日志 按小时
 access_log  logs/access/域名/$year-$month-$day-$hour-access.log;
错误日志
 error_log  logs/error/域名/error_域名.log  error;

注意:这里需要确认访问日志对应路径,即 /usr/local/nginx/logs/access/域名 的所属组或者用户是谁,

 确认是否为nginx的.否则会导致日志生成失败
 所以不是,就需要给nginx的user    test test;权限
 eg:

    #先在文件下创建对应的文件夹
    mkdir access    
    mkdir access/域名 

    #再把权限给nginx的用户,使之可以进行写操作记录日志
    chown test:test /usr/local/nginx/logs/acces
    chown test:test /usr/local/nginx/logs/acces/域名
    #查看
    ll
    drwxr-xr-x 4 test  test          4096 1月   4 14:18 access

使用nginx检测和平滑启动

检测配置是否正确
/usr/local/nginx/sbin/nginx -t
正确则平滑重启Nginx
/usr/local/nginx/sbin/nginx -s reload

对于那些暂不需要记录日志的域名网站,在对应的server 块中加入

对访问该server块的操作

不记录访问日志
access_log off;

不记录错误日志
error_log /dev/null;

仅有 1 条评论
  1. 有格调的鱼er

    记录一次踩坑>>>>
    lnmp安装后,一切正常,唯独Laravel HTTP500 ,解决如下 :

    注释掉/usr/local/nginx/conf/fastcgi.conf最后一行的:
    #fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

    或者改为:
    fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/wwwroot/:/tmp/:/proc/:/";

    就OK了,不过我这里注释掉后又遇到了权限问题,给storage目录重新 chmod 777 -R storage了一下

    由于laravel框架的入口文件不再项目根目录,而在public目录下,当我在lnmp中用lnmp vhost add命令添加虚拟主机并将域名制定到public目录下时,会在public目录下生成.user.ini文件,

    里边的内容是:open_basedir=/home/wwwroot/blog/public:/tmp/:/proc/,所以导致laravel请求不到public目录意外的文件而报错。

    有格调的鱼er 2021-02-08 16:11:58回复
发表新评论