Django+Nginx+uWSGI = 504 тайм-аут шлюза с pdf2image

Я пытаюсь запустить Django приложение, используя Nginx+uWSGI.

sudo apt update
sudo apt install poppler-utils

Я установил poppler-utils.

И мое приложение пытается конвертировать загруженные страницы pdf в jpg с помощью модуля pdf2image. Однако через минуту я получил сообщение 504 Gateway Time-out.

При конвертировании небольшого файла pdf (335KB) в jpg программа работает хорошо. Однако при конвертировании pdf большого объема (6,82 МБ) происходит тайм-аут.

  • /etc/nginx/nginx.conf:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 768;
}

http {
    client_max_body_size 50M;
    upstream django {
        server unix:/home/ubuntu/myapp/uwsgi.sock;
    }

    proxy_send_timeout 300;
    proxy_read_timeout 300;
    proxy_connect_timeout 300;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    gzip on;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
  • /etc/nginx/sites-enabled/default:
server {
    listen 80 default server;
    listen [::]:80 default_server;

    root /var/www/html;

    server _name _;
    
    location / {
        include /etc/nginx/uwsgi_params;
        uwsgi_pass django;

        proxy_buffer_size       256k;
        proxy_buffers           16 256k;
        proxy_busy_buffers_size 512k;
    }

    ...
}
  • uwsgi.ini:
[uwsgi]
chdir=/home/ubuntu/myapp
module=myapp.wsgi:application
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
daemonize=/home/ubuntu/myapp/django.log
home=/home/ubuntu/myapp/venv
virtualenv=/home/ubuntu/myapp/venv
socket=/home/ubuntu/myapp/uwsgi.sock
chmod-socket=666
http-timeout=600
  • nginx error.log:
2022/06/02 17:11:20 [error] 1652#1652: *69 upstream timed out (110: Connection timed out) while reading response header from upstream, client: my_ip, server: _, request: "POST /upload/pdf/url HTTP/1.1", upstream: "uwsgi://unix:/home/ubuntu/myapp/uwsgi.sock", host: "my_server_ip", referrer: "http://my_server_ip/upload/pdf/url"

Я не знаю, чего мне не хватает. Есть ли у кого-нибудь идея, как я могу решить эту проблему?

Вернуться на верх