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

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.

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.

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:
upstream django {
ip_hash;
server unix:/var/sock/nginx.sock;
}

server {
listen 443;
server_name myserver;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

 ssl                  on;
 # cert info . . . .
 ssl_verify_client optional;
 ssl_session_timeout  5m;
 # cipher info

 location ^~ /static {
     root   /my/static;
     index  index.html index.htm;
 }

 location ^~ /registration {
     uwsgi_pass django;
     uwsgi_param UWSGI_SCHEME https;
     include uwsgi_params;
 }

}

Hello!

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
better.

[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
A debugging log.

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.

sendfile        on;

The probably relevant nginx config lines:
Actually, full configuration is relevant, including all
other includes. Else the information is mostly useless.

[…]

Maxim D.

??hi , did you got the answer?? i have the same problem

Posted at Nginx Forum: