我正在使用Django构建一个Web应用程序,该应用程序使用预先训练的scikit-learn模型来处理用户通过Web表单输入的数据。在开发期间,我可以通过在urls.py
中运行以下命令将模型加载到内存中modelRF = joblib.load('model.pkl')
但是,当我尝试在Docker容器中部署应用程序时,收到504网关超时错误。我尝试增加nginx.conf文件中的超时限制,但没有成功。我想知道分配给容器的内存量是否也可能是一个问题。
我不确定问题是否与Docker有关,还是与在部署(而非开发)时将模型加载到内存中的方式有关。我正在将docker-compose与nginx,supervisor和uwsgi结合使用。
我的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;
}
}
干杯!
答案 0 :(得分:0)
在Django位置花括号内添加 uwsgi_read_timeout 指令,如下所示:
location / {
uwsgi_pass django;
include /home/docker/code/uwsgi_params;
uwsgi_read_timeout 3000;
}