Python django的另一台主机上的媒体服务器。这条路对吗?

Python django的另一台主机上的媒体服务器。这条路对吗?,python,django,nginx,shared-hosting,Python,Django,Nginx,Shared Hosting,我读了很多关于如何为Django创建单独的媒体服务器的文章。但我有自己的决定 /media-dir在文件服务器上。我把它挂载到我的django服务器(SSHFS),这样我就可以保存那里的用户图像等。然后我将媒体url更改为文件服务器地址/media,在文件服务器上我有nginx,它将分发文件 这样行吗 django服务器上的负载会不会很大 谢谢。如果我正确理解您的服务器布局-nginx正在您的文件服务器上运行,并且它正在将请求代理到另一台服务器上的Django,它应该可以工作。如果服务器位于同一

我读了很多关于如何为Django创建单独的媒体服务器的文章。但我有自己的决定

/media-dir在文件服务器上。我把它挂载到我的django服务器(SSHFS),这样我就可以保存那里的用户图像等。然后我将媒体url更改为
文件服务器地址
/media,在文件服务器上我有nginx,它将分发文件

这样行吗

django服务器上的负载会不会很大


谢谢。

如果我正确理解您的服务器布局-nginx正在您的文件服务器上运行,并且它正在将请求代理到另一台服务器上的Django,它应该可以工作。如果服务器位于同一LAN或数据中心,则最好减少延迟和网络错误。您还需要确保运行nginx工作进程的用户有权访问/media/

让nginx服务于媒体和静态目录将减少Django服务器上的负载。顺便说一句,Gunicorn和uWSGI是备受推崇的Django服务器

按原样使用/media/目录有点不寻常。通常使用
/var/www/example.com/media
/srv/www/example.com/media

设置 我只是想确保你的域名设置正确,因为它会影响媒体URL设置的使用,特别是如果你从那里提供Javascript,那么请耐心听我说。如果您的网站是example.com,您的DNS设置应将example.com指向您的nginx/文件服务器IP地址

您的设置文件 Django settings.py

MEDIA_URL = "/media/"
nginx example.conf

root/在下面的示例中看起来很可怕,但是

访问媒体文件 Django项目可以使用简单、绝对的URL引用图像,如

<img src="/media/user1234/2012/03/04/aeiou.jpg" alt="aeiou">
<img src="{{ MEDIA_URL }}/user1234/2012/03/04/aeiou.jpg" alt="aeiou">

或者,以防您将媒体文件移动到CDN


<img src="{{ MEDIA_URL }}/user1234/2012/03/04/aeiou.jpg" alt="aeiou">