Dash deployment with NGINX-Uwsgi-Django failing when running with multiprocess
У меня есть стек, который выглядит следующим образом:
NGINX (nginx.conf
):
worker_processes 8;
events {
worker_connections 1024;
use epoll;
multi_accept on;
accept_mutex off;
}
upstream django {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
server 127.0.0.1:8004;
server 127.0.0.1:8005;
server 127.0.0.1:8006;
server 127.0.0.1:8007;
server 127.0.0.1:8008;
}
location /api {
uwsgi_pass django;
uwsgi_read_timeout 600;
uwsgi_param Host $host;
uwsgi_param X-Real-IP $remote_addr;
uwsgi_param X-Forwarded-For $proxy_add_x_forwarded_for;
uwsgi_param X-Forwarded-Proto $http_x_forwarded_proto;
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;
uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param HTTPS $https if_not_empty;
uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;
}
Все файлы uwsgi идентичны, за исключением соответствующих сокетов. Они выглядят следующим образом (mysite.xml):
<uwsgi>
<socket>127.0.0.1:8001/api</socket>
<chdir>/var/www/MY_API</chdir>
<module>nimgenetics.wsgi:application</module>
<debug>true</debug>
</uwsgi>
Когда я запускаю uwsgi с одним процессом, он работает нормально. Но когда я запускаю uwsgi с несколькими процессами на разных сокетах [8001-8008
], все приложение работает нормально, кроме графиков Dash. Я получаю следующую ошибку:
Unable to find stateless DjangoApp called app
Есть предположения, как я могу решить это, чтобы запустить Dash с мультипроцессингом с NGINX+UWSGI+Django?