Django 作为反向代理

2024-02-12

我的客户端-服务器应用程序主要基于特殊用途的http服务器,它以类似Ajax的方式与客户端进行通信,即。客户端 GUI 根据异步 http 请求/响应周期刷新。

专用 http 服务器的可进化性是有限的,并且随着应用程序的增长,需要越来越多的标准功能,例如 Django 提供的功能。

因此,我想添加一个 Django 应用程序作为外观/反向代理,以隐藏非标准的特殊用途服务器并能够从 Django 中获益。出于安全原因和隐藏复杂性,我希望将 Django 应用程序作为网关,而不使用 http-redirect。

然而,我担心的是,通过服务器上的 Django 隧道传输流量可能会降低性能。这是一个合理的担忧吗?

问题是否有替代解决方案?


通常在生产中,您将 Django 托管在 Apache httpd 或 nginx 等 Web 容器后面。这些模块具有专为代理请求而设计的模块(例如proxy_pass for a location在 Nginx 中)。如果您需要的话,他们会为您提供一些开箱即用的额外功能,例如缓存。与通过 Django 应用程序的请求管道进行代理相比,这可以节省您的开发时间,同时提供更好的性能。但是,当您使用这样的解决方案时,您会牺牲完全操纵请求或代理响应的能力。

对于本地测试./manage.py runserver,我通过添加 url 模式urls.py in an if settings.DEBUG: ...部分。这是我使用的视图函数代码,它支持 GET、PUT 和 POST 使用requestsPython 库:https://gist.github.com/JustinTArthur/5710254 https://gist.github.com/JustinTArthur/5710254

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 作为反向代理 的相关文章

随机推荐