Skip to main content
 首页 » 编程设计

python之Django + Nginx 无法提供媒体文件

2024年11月01日36lyhabc

我有两台服务器:第一台用于 Nginx,第二台用于 Django + 媒体文件。

Nginx server IP: xxx.xx.xx.1 
Django + media files server IP: xxx.xx.xx.2 

在Django的settings.py文件中,我的媒体路径配置:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 
 
MEDIA_URL = "/media/" 

在第一个服务器中,我的 Nginx 配置:

server { 
        listen 80; 
        server_name example.com; 
 
        location /media/ { 
                proxy_pass http://xxx.xx.xx.2/; 
        } 
 
        location / { 
                include proxy_params; 
                proxy_pass http://xxx.xx.xx.2:8000/; 
        } 
} 

在放置媒体文件的第二个服务器中,我的 Nginx 配置:

server { 
        listen 80; 
        server_name xxx.xx.xx.2; 
 
        location /media/ { 
                alias /home/sadm/Desktop/{project_name}/media; 
        } 

但是,当尝试访问 example.com/media/images/my_image.jpg 时,我收到了 404 错误。

非常感谢任何帮助!提前致谢!

请您参考如下方法:

这可能很短,但我认为您不应该在别名末尾使用 /media。 试试这个:

server { 
        listen 80; 
        server_name xxx.xx.xx.2; 
 
        location /media/ { 
                root /home/sadm/Desktop/{project_name}; 
        } 
}