debugging 504 Gateway Time-out
Larry Martell
larry.martell at gmail.com
Mon Aug 15 00:03:21 UTC 2016
On Tue, Aug 9, 2016 at 10:35 PM, Richard Stanway
<r1ch+nginx at teamliquid.net> wrote:
>> generated 0 bytes in 640738 msecs
>
> I would look into what is causing your backend to take over 10 minutes to
> respond to that request.
I have some requests that can take a long time to return - the users
can request huge amount of data to be pulled from very large database
tables with complex filters. But what I don't understand it how the
nginx timeout works. My config file has this:
proxy_read_timeout 600;
proxy_connect_timeout 600;
proxy_send_timeout 600;
send_timeout 600;
That's 10 minutes, right? But I get the 504 response before 10 minutes
have passed since the request is sent. Why is that?
>
> On Tue, Aug 9, 2016 at 11:09 PM, Larry Martell <larry.martell at gmail.com>
> wrote:
>>
>> I just set up a django site with nginx and uWSGI. Some pages I go to
>> work fine, but other fail with a 504 Gateway Time-out. I used to
>> serve this site with apache and wsgi and these same pages worked fine.
>>
>> This is what I see in the nginx error log:
>>
>> 2016/08/09 16:40:19 [error] 17345#0: *1 upstream timed out (110:
>> Connection timed out) while reading response header from upstream,
>> client: 10.250.147.59, server: localhost, request: "GET
>>
>> /report/CDSEM/MeasurementData/?group=&target_name=&recipe=&ep=&ppl=&roi_name=&lot=&date_time=8%2F1&tool_ids=23&field_1=Tool&field_2=Target&field_3=Recipe&field_4=Ep&field_5=Lot&field_6=Date+Time&field_7=Bottom&submit_preview=Generate+Report
>> HTTP/1.1", upstream: "uwsgi://unix:///usr/local/motor/motor.sock",
>> host: "xx.xx.xx.xx", referrer:
>> "http://xx.xx.xx.xx/report/CDSEM/MeasurementData/"
>>
>> When this happens I see this in the uwsgi error log:
>>
>> Tue Aug 9 16:42:57 2016 -
>> uwsgi_response_writev_headers_and_body_do(): Broken pipe
>> [core/writer.c line 296] during GET
>>
>> /report/CDSEM/MeasurementData/?group=&target_name=&recipe=&ep=&ppl=&roi_name=&lot=&date_time=8%2F1&tool_ids=23&field_1=Tool&field_2=Target&field_3=Recipe&field_4=Ep&field_5=Lot&field_6=Date+Time&field_7=Bottom&submit_preview=Generate+Report
>> (10.250.147.59)
>> IOError: write error
>> [pid: 9230|app: 0|req: 36/155] 10.250.147.59 () {46 vars in 1333
>> bytes} [Tue Aug 9 16:32:16 2016] GET
>>
>> /report/CDSEM/MeasurementData/?group=&target_name=&recipe=&ep=&ppl=&roi_name=&lot=&date_time=8%2F1&tool_ids=23&field_1=Tool&field_2=Target&field_3=Recipe&field_4=Ep&field_5=Lot&field_6=Date+Time&field_7=Bottom&submit_preview=Generate+Report
>> => generated 0 bytes in 640738 msecs (HTTP/1.1 200) 4 headers in 0
>> bytes (1 switches on core 0)
>>
>> Note the weird timestamps. The first uwsgi message is more then 2
>> minutes after the nginx message. And the second uwsgi message has a
>> timestamp before the previous uwsgi message. What's up with that??
>>
>> Here is my nginx config:
>>
>> worker_processes 1;
>>
>> events {
>> worker_connections 1024;
>> }
>>
>> http {
>> include mime.types;
>> default_type application/octet-stream;
>> keepalive_timeout 65;
>> sendfile on;
>>
>> # set client body size to 20M
>> client_max_body_size 20M;
>>
>> include /etc/nginx/sites-enabled/*;
>> }
>>
>>
>> and here is my local site file:
>>
>> # motor_nginx.conf
>>
>> # the upstream component nginx needs to connect to
>> upstream django {
>> server unix:///usr/local/motor/motor.sock; # for a file socket
>> }
>>
>> # configuration of the server
>> server {
>> # the port your site will be served on
>> listen 80;
>> # the domain name it will serve for
>> server_name localhost;
>> charset utf-8;
>>
>> # max upload size
>> client_max_body_size 75M; # adjust to taste
>>
>> proxy_read_timeout 600;
>> proxy_connect_timeout 600;
>> proxy_send_timeout 600;
>> send_timeout 600;
>>
>> # Django media
>> location /media {
>> alias /usr/local/motor/motor/media;
>> }
>>
>> location /static {
>> alias /usr/local/motor/motor/static;
>> }
>>
>> # Finally, send all non-media requests to the Django server.
>> location / {
>> uwsgi_pass django;
>> include /usr/local/motor/motor/uwsgi_params;
>> }
>> }
>>
>> How can I debug or fix this?
>>
>> Thanks!
More information about the nginx
mailing list