2024-04-28 03:05:25 发布
网友
我有一个django/mezzanine/django cumulus项目,它使用rackspace cloudfiles CDN进行媒体存储。我想自动提供来自本地媒体根目录的所有静态文件(如果存在的话),并且只有在不存在的情况下才回退到CDN URL。在
一种可能的方法是使用标记在模板级别管理回退。我宁愿不必覆盖所有的管理模板(例如)只是为了这个,然而。在
有没有一种方法可以修改对所有媒体的处理,使其首先使用一个存储引擎,然后在出错时切换到另一个存储引擎?在
根据Anup的建议,我发现nginx配置可以很好地处理404条件:
location /static/ { root /path/to/static_root; # ... error_page 404 = @cdn; } location @cdn { # cdn_cname.example.com is an alias for deadbeef012345.r99.cf5.rackcdn.com rewrite ^/(.*)$ http://cdn_cname.example.com/$1 last; }
这将正确地将对本地服务器上返回404的/static/URI的任何请求重定向到CDN。但是,django cumulus仍然通过CDN呈现到静态文件的链接。为了解决这个问题,我在设置.py公司名称:
现在,django cumulus链接使用本地服务器的静态URI,它将命中上面的nginx配置,并且只在必要时重定向到CDN。万岁!在
最好的方法就是让它正常工作,就是让一个不同的web服务器为您的所有媒体提供服务(我使用nginx)。然后设置一个负载平衡器来检测故障,并在发生故障时将所有请求重定向到CDN。 您可能需要弄清楚图像路径(如果需要,请使用HAProxy重写请求URL)
根据Anup的建议,我发现nginx配置可以很好地处理404条件:
这将正确地将对本地服务器上返回404的/static/URI的任何请求重定向到CDN。但是,django cumulus仍然通过CDN呈现到静态文件的链接。为了解决这个问题,我在设置.py公司名称:
^{pr2}$现在,django cumulus链接使用本地服务器的静态URI,它将命中上面的nginx配置,并且只在必要时重定向到CDN。万岁!在
最好的方法就是让它正常工作,就是让一个不同的web服务器为您的所有媒体提供服务(我使用nginx)。然后设置一个负载平衡器来检测故障,并在发生故障时将所有请求重定向到CDN。 您可能需要弄清楚图像路径(如果需要,请使用HAProxy重写请求URL)
相关问题 更多 >
编程相关推荐