我有使用uwsgi和nginx部署的python web app(WSGi)。我将向许多用户(客户)提供此应用程序 - 每个用户将拥有自己的设置,数据库,模板,数据文件夹等。应用程序的代码可以共享。
我最初的想法是每个客户都有一个uwsgi进程。但这是非常浪费的方法,因为目前该应用程序的内存占用量约为100MB。我希望大多数这些实例大部分时间都处于休眠状态(每天最多500个请求)。
我提出了这个解决方案:
应用程序将被修改,一个实例可以为更多客户服务。根据请求的域,它将为该客户准备(加载)正确的设置,数据库连接等。
这是个好主意吗?或者我应该专注于降低内存占用量?
感谢您的回答!
答案 0 :(得分:1)
应用程序将以这种方式进行修改,即一个实例可以用于 更多客户。根据请求的域,它将准备(加载) 该客户的正确设置,数据库连接等。
这是个好主意吗?
好吧,我在生产中使用了一个类似的系统,其中有n
个应用实例,但每个实例都可以根据HTTP Host
标题为任何客户提供服务,并且它可以正常工作好。
鉴于客户数量足够多,每个客户拥有一个实例可能不符合成本效益,甚至不实用。