Empty error and access log

Maxim Dounin mdounin at mdounin.ru
Thu Sep 26 15:13:55 UTC 2019


Hello!

On Thu, Sep 26, 2019 at 06:22:41AM -0400, krishna wrote:

> Dear Team,
> 
> I have configured access_log and error_log at https block level and
> sometimes(like after log rotation), could see the logs are with 0 bytes
> (which means, nothing logged though it serves the requests and application
> is accessible). 
> 
> Any help would be appreciated to figure out the issue and why its occurring
> .
> 
> Config:
> 
> #Log file format
>     log_format main '$remote_addr - $remote_user [$time_local] '
>                     '"$request" $status $body_bytes_sent '
>                     '"$http_referer" "$http_user_agent" "$gzip_ratio" ';
> 
>     access_log /var/logs/access.log main;
>     error_log  /var/logs/error.log error;
> 
> Log Files:    
> 
> -rwxr-xr-x. 1 root root 0 Sep 25 03:13 access.log
> -rwxr-xr-x. 1 root root 0 Sep 26 03:34 error.log

These files are only writable by root, hence nginx worker 
processes won't be able to open these for writing after log 
rotation.  You have to fix your log rotation configuration to 
create files which are writable by nginx user.

For example, nginx own packages as available from nginx.org use 
the following logrotate configuration
(http://hg.nginx.org/pkg-oss/file/tip/debian/nginx.logrotate):

/var/log/nginx/*.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 nginx adm
        sharedscripts
        postrotate
                if [ -f /var/run/nginx.pid ]; then
                        kill -USR1 `cat /var/run/nginx.pid`
                fi
        endscript
}

Note the "create 640 nginx adm" line.

-- 
Maxim Dounin
http://mdounin.ru/


More information about the nginx mailing list