Nginx 504 Docker容器中的超时错误,运行Django并将Scikit-learn模型加载到内存中



我正在使用Django构建一个Web应用程序,该应用程序使用预先训练的scikit-learn模型来处理用户通过Web表单输入的数据。在开发过程中,我能够通过在 urls.py 中运行以下命令将模型加载到内存中

modelRF = joblib.load('model.pkl')

但是,当我尝试在 Docker 容器中部署应用程序时,我收到 504 网关超时错误。我尝试增加nginx.conf文件中的超时限制,但没有任何成功。我想知道这是否也可能是分配给容器的内存量的问题。

我不确定问题是否与 Docker 有关,还是与我在部署(而不是开发(时将模型加载到内存中的方式有关。我正在使用带有nginx,supervisor和uwsgi的docker-compose。

我的nginx.conf文件看起来像这样:

upstream django {
server unix:///tmp/uwsgi.sock; # for a file socket
}
server {
listen      80 default_server;
server_name .example.com;
charset     utf-8;
# max upload size
client_max_body_size 75M;   
# Django media
location /media  {
alias /home/docker/code/media;
}
location /static {
alias /home/docker/code/static;
}
location / {
uwsgi_pass  django;
include /home/docker/code/uwsgi_params; 
}
}

在 django 位置大括号内添加uwsgi_read_timeout指令,如下所示:

location / {
uwsgi_pass  django;
include /home/docker/code/uwsgi_params;
uwsgi_read_timeout 3000;
}

最新更新