python - Django/Python 将 URL 中的文件作为 http 代理快速流提供服务

标签 python django http proxy twisted

我们遇到了 SVG 文件的跨域问题,这些文件是由 CDN(内容交付网络)提供的,因此来自与我们的主域(Python/Django 应用程序)不同的域名。我们想设置一个特殊的 View ,可以作为这些 SVG 文件的服务器端代理,以屏蔽域名并解决跨域问题。问题是如何对 SVG 等静态文件甚至其他类型(.jpg、.js、.png、.mp4 等)的 url 发出快速 http 请求,并以分块流式 http 响应的速度提供它们我们从请求流接收 block 。

我们意识到在 Django 和 WSGI 之外执行此操作当然可能更快,也许是 twisted server会更好,所以最终我们正在寻找最快/最好的 Python 方法来完成我们需要的事情。确实在寻找推荐解决方案的示例代码。

非常感谢!

最佳答案

您可以将 nginx 放在 Apache 前面,这将具有多种好处,例如更好的静态文件服务(IOW 让它处理静态文件而不是 Apache)以及将 Apache/mod_wsgi 与慢速客户端隔离。完成此操作后,您就可以让 Django 应用程序生成 X-Accel-Redirect header ,nginx 将解释该 header 并发出新的子请求。该子请求的目标 URL 可以是 nginx 中设置的代理定义,用于从 CDN 获取文件并返回它们,就像它们响应原始请求一样。

关于python - Django/Python 将 URL 中的文件作为 http 代理快速流提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13274816/

相关文章:

python - 证书验证失败 (_ssl.c :645)>” for one particuar domain

python - python中子组的排列

django - 通过模板标签将变量添加到当前上下文

java - 为什么我收到 http 500 响应?

Python:你能在对象引用中使用计算表达式吗?

python - softmax的输出使得二值交叉熵的输出为NAN,我该怎么办?

Django:时区问题

django - fields.E304 Django 中的反向访问器冲突

.htaccess - htaccess RewriteEngine 适用于 HTTP 但不适用于 HTTPS

http - Dart:http.dart 包中的 client.post() 方法挂起并且没有返回 future