我们遇到了来自CDN(内容交付网络)的SVG文件的跨域问题,因此这些文件来自与我们的主域Python/Django应用程序不同的域名。我们想设置一个特殊的视图,它可以作为这些SVG文件的服务器端代理来屏蔽域名并解决跨域问题。问题是如何对静态文件(如SVG或其他类型(.jpg、.js、.png、.mp4等)的url发出快速的http请求,并在分块流式http响应中提供服务,就像我们从请求流接收块一样快。在
我们意识到在Django和WSGI之外这样做可能会更快,也许{a1}会更好,所以最终我们要寻找最快/最好的Python方法来完成我们需要的。正在寻找推荐解决方案的示例代码。在
非常感谢!在
您可以将nginx放在Apache前面,这将有各种好处,比如更好的静态文件服务(low让它处理静态文件,而不是Apache),并将Apache/mod乩wsgi与慢速客户端隔离开来。这样做之后,你就可以让你的Django应用生成X-Accel-Redirect头,nginx将解释这些头并发出一个新的子请求。该子请求的目标URL可以是nginx中的一个代理定义设置,用于从CDN获取文件并返回它们,就像它们是对原始请求的响应一样。在
所以我有几个可能的解决办法。第一种是python,但这可能不是您的最佳选择。在
{1}扭曲的船。有一个非常简单(但很有效)的例子on their site
2)根据应用程序(如现代浏览器),在CDN配置中添加CORS响应头可能对您有用。要检查,您的应用程序(浏览器?)尝试对SVG资源发出GET请求(带有“Origin:”http头),但是拒绝呈现它?在
如果是这样的话,您可能会绊倒浏览器的同源需求。源代码可以通过返回
Cross-Domain-Allow-Origin: *
或类似的头,以及对带有Origin:
报头的HTTP请求的响应来放宽这一要求。在根据CDN,我可以澄清/提供示例元数据,以便为跨源请求启用CORS响应头
3)您是否绝对需要使用python作为反向代理?apache和{a4}都有非常好的测试模块,可以在不使用Python的情况下实现流式反向代理。尝试使用python来实现这一点可能很有趣和/或令人钦佩,但它的性能水平远不如直接在HTTP服务器中实现的那样好
相关问题 更多 >
编程相关推荐