Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何在添加/删除租户时避免httpd重新启动/重新加载(mod_wsgi)_Django_Apache_Mod Wsgi_Multi Tenant - Fatal编程技术网

Django 如何在添加/删除租户时避免httpd重新启动/重新加载(mod_wsgi)

Django 如何在添加/删除租户时避免httpd重新启动/重新加载(mod_wsgi),django,apache,mod-wsgi,multi-tenant,Django,Apache,Mod Wsgi,Multi Tenant,在我们的多租户体系结构中(apache、django、mysql) 对于我们创建的每个新租户,我们添加一个conf文件(/etc/httpd/conf.d/),例如customer1_http.conf 我们尝试了mod_wsgi,touch wsgi(mod_wsgi),但是Apache能够选择新添加的租户(除非我们重新加载) WSGISocketPrefix运行/wsgi WSGIDaemonProcess customer1.com进程=2线程=15显示名称=%{GROUP} WSGIS

在我们的多租户体系结构中(apache、django、mysql)

对于我们创建的每个新租户,我们添加一个conf文件(/etc/httpd/conf.d/),例如customer1_http.conf

我们尝试了mod_wsgi,touch wsgi(mod_wsgi),但是Apache能够选择新添加的租户(除非我们重新加载)

  • WSGISocketPrefix运行/wsgi
  • WSGIDaemonProcess customer1.com进程=2线程=15显示名称=%{GROUP}
  • WSGIScriptAlias//opt/org/site/dc/customer1_wsgi.wsgi

有没有更好的替代方法(除了重新启动/重新加载)让Apache知道新添加/删除的conf文件

>而不是使用单个Apache,考虑通过使用MODYWSGI- Exchange()来为每个WSGi应用程序使用单独的实例。然后使用Apache或nginx作为前端负载平衡器。这将使您能够更好地控制每个实例,并且重新启动前端以添加/删除站点不会导致重新启动WSGI应用程序

另一种选择是使用Docker运行每个实例,因为这样可以简化每个站点的设置和管理

有关使用Apache代理多个mod_wsgi-express实例(使用Docker,但如果不使用Docker,则仍然相关)的讨论,请参阅:


根据需要管理的站点和机器数量,以及需要运行的其他类型的基础设施,您可能希望查看Kubernetes和OpenShift等系统,以帮助您管理此类内容。

而不是使用单一的Apache,考虑通过使用MODYWSGI- Exchange()来为每个WSGi应用程序使用单独的实例。然后使用Apache或nginx作为前端负载平衡器。这将使您能够更好地控制每个实例,并且重新启动前端以添加/删除站点不会导致重新启动WSGI应用程序

另一种选择是使用Docker运行每个实例,因为这样可以简化每个站点的设置和管理

有关使用Apache代理多个mod_wsgi-express实例(使用Docker,但如果不使用Docker,则仍然相关)的讨论,请参阅:

根据需要管理的站点和机器的数量,以及需要运行的其他类型的基础设施,您可能希望查看诸如Kubernetes和OpenShift之类的系统来帮助您管理此类内容