首页 > 解决方案 > 在 NAS 中使用 Nginx + Django 高效服务媒体的最佳实践

问题描述

阅读了一堆与此类似的其他主题后,我仍然不确定什么是最好的。假设我有一个负载均衡器,其中包含 2 个具有 Nginx + Django 的服务器,然后是一个单独的数据库服务器和 3 个带有图像和视频的存储服务器。
如何最好地提供来自 3 个存储服务器的媒体文件?我目前计划做的是为所有请求保留我的 2 个入口点。对媒体文件的请求将由 Django 在那里进行身份验证,然后我将使用 X-accel 直接代理将媒体请求传递给存储服务器。但是,Nginx 文档说明了这一点:

当 NGINX 代理请求时,它会将请求发送到指定的代理服务器,获取响应,然后将其发送回客户端。

这是否意味着 2 个入口点服务器的负载相同?这就是我的理解方式,效率不高。

在此处输入图像描述

我想要实现的是这样的:

在此处输入图像描述

该请求由 Django 进行身份验证,重定向到存储服务器,存储服务器将响应直接发送到客户端。这可能吗?

我想提供媒体文件的最有效的性能方式是删除应用服务器步骤,如下所示:

在此处输入图像描述

但是,这意味着我无法使用 Django 对媒体请求进行身份验证,并且必须使用安全链接,这是 Nginx 的安全链接模块。这些链接的安全性如何?

标签: djangoauthenticationnginxstatic-files

解决方案


推荐阅读