nginx doesn't seem to log all accesses (some uwsgi accesses are missing)

Maxim Dounin mdounin at
Sun Jan 29 23:03:53 UTC 2012


On Sat, Jan 28, 2012 at 04:38:46PM +0100, Gelonida wrote:

> Hi everybody,
> I hope the message does NOT show up three times.
> My news client always reports errors and I don't know whether the
> message was sent out or not.

It was shown up at least 2 times.  It may be not a good idea to 
post via gmane, probably subscribing directly instead would be 

> I'm having following setup:
> nginx <-unix_socket-> uwsgi -> django
> What I noticed is, that some requests of the uwsgi.log file do NOT
> show up in nginx' access_log file.
> Example:
> in uwsgi.log I can see:
> [pid: 1205|app: 0|req: 537/1453] xx.xx.xx.33 () {40 vars in 1794
> bytes} [Thu Jan 26 18:42:31 2012] POST /my_url/run?var=123 =>
> generated 129 bytes in 94 msecs (HTTP/1.0 200) 3 headers in 174
> bytes (1 switches on core 0)
> However I don't see any corresponding request logged in nginx log.
> Is this the expected behaviour?
> What could be the reason?
> Ideally I would like to see all accesses in nginx' access file.

All accesses are expected to be logged, unless logging is switched 
off.  Note though:

1) requests are logged on completion, and if request processing 
and/or sending response to client takes a while - log line won't 
appear till completion

2) requests are logged in configuration of a location where 
request ends; this may be quite different from one where 
processing reaches backend, especially if X-Accel-Redirect or 
error_page redirections are used.

3) one request may hit easily hit backends several times (see 
above about redirections)

If you think something is wrong, you may build debug log to see 
what actually happens, see

Note that you have to configure one at global level, and make sure 
it's not overriten at more specific levels (best solution is to 
comment out all other error_log directives), else you are risking 
to miss debug log data as well.

> My nginx.conf
> #--------------
> worker_processes  2;
> events {
>     worker_connections  1024;
> }
> http {
>     include       mime.types;
>     default_type  application/octet-stream;
>     sendfile        on;
>     keepalive_timeout  65;
>     include sites-enabled/*;
>     uwsgi_temp_path  /etc/uwsgi/;
> }
> # sites_enabled/ssl;
> # ---------------------------------------
> The probably relevant nginx config lines:

Actually, full configuration is relevant, including all 
other includes.  Else the information is mostly useless.


Maxim Dounin

More information about the nginx mailing list