如何修复nginx 504(网关超时)?

2024-04-16 21:04:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个查询,选择600k数据。 让我们以这个简单的查询为例:“SELECT*fromtable WHERE NAME='TEST';” 尽管有大行数据,查询实际上可以完成处理,但在完成之前,nginx总是会进行干预并留下消息“504(网关超时)”

我知道它已经完成了,因为在查询之前和之后,我已经准备好了一个打印代码

print('start query')
query = query_db("SELECT * FROM TABLE WHERE NAME='TEST';")
print(f'query done: {len(query)}')

在这行“print(f'query done:{len(query)}”)之前,实际工作-nginx 504(网关超时)将出现,然后将处理打印

顺便说一句,当数据仅在100k左右时,不会出现问题。 我真的不知道该怎么办,我被困在这里,为此感到沮丧。我的截止日期快到了,请发送帮助

这是我的查询数据库功能代码:

from django.db import connection

def query_db(query, args=(), one=False):
    cur = connection.cursor()
    cur.execute(query, args)
    r = [dict((cur.description[i][0], value)
              for i, value in enumerate(row)) for row in cur.fetchall()]
    return (r[0] if r else None) if one else r

这是我的nginx服务器代码:

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  6000;
    client_header_timeout 6000;
    client_body_timeout 6000;
    fastcgi_read_timeout 6000;
    client_max_body_size 32m;
    fastcgi_buffer_size 128k;     


    server {
         listen 8383 default_server;
         server_name localhost;
         access_log  /logs;
         client_max_body_size 500M;


        location /Dashboard/ {
                 proxy_pass http://localhost:8003;
    
            }
        
        location /Dashboard/static/ {
            alias D:/dashboard/static/;
            expires 7d;
        }   

    }
}

Tags: 数据代码nameclientdbsizeservertimeout