我正在NGINX + Gunicorn + PostgreSQL + Django + Docker项目上工作,但是在通过Django管理员上传文件时遇到了问题。
当我上载服务器时,会收到它并为其创建正确的数据库条目(创建它的用户,日期,文件名等)。此内容显示得很完美,但是当我尝试访问该文件时,我不断得到{{1 }}消息。
如果我手动访问Gunicorn Docker容器卷并执行404 Not Found
,但它确实在find / -name "Filename.pdf"
内找到了文件,因此看起来该文件正在上载,那为什么我无法访问它?
这是我的 NGINX 配置:
/opt/services/media/files/2018-07-29/Filename.pdf
对于 Gunicorn ,我执行以下命令:# Upstream server, which is our Gunicorn application.
upstream project_server {
server webapp:8000;
}
# Main server
server {
listen 80;
server_name localhost;
client_max_body_size 5M;
location /static {
alias /opt/services/webapp/static;
}
location /media {
alias /opt/services/webapp/media;
}
location / {
# Everything is passed to Gunicorn
proxy_pass http://project_server;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
}
和配置:
CMD ["gunicorn", "-c", "config/gunicorn/conf.py", "--bind", ":8000", "--chdir", "project", "project.wsgi:application"]
name = 'project'
loglevel = 'info'
errorlog = '-'
accesslog = '-'
workers = 2
如何正确提供文件?
诸如CSS和图像之类的静态内容可以正常工作。