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