【问题标题】:How to avoid httpd restart/reload (mod_wsgi) on adding/deleting a tenant如何在添加/删除租户时避免 httpd 重新启动/重新加载 (mod_wsgi)
【发布时间】:2017-05-23 08:50:44
【问题描述】:

在我们的多租户架构中(apache、django、mysql)

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

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

  • WSGISocketPrefix 运行/wsgi
  • WSGIDaemonProcess customer1.com processes=2 threads=15 display-name=%{GROUP}
  • WSGIScriptAlias / /opt/org/site/dc/customer1_wsgi.wsgi

有没有更好的选择(除了重启/重新加载)让 Apache 知道新添加/删除的 conf 文件。

【问题讨论】:

    标签: django apache mod-wsgi multi-tenant


    【解决方案1】:

    与其使用单个 Apache,不如考虑使用 mod_wsgi-express (https://pypi.python.org/pypi/mod_wsgi) 为每个 WSGI 应用程序使用单独的实例。然后将 Apache 或 nginx 作为前端负载均衡器。这将使您能够更好地控制每个实例,并且重新启动前端以添加/删除站点不会导致 WSGI 应用程序重新启动。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 2022-12-05
      • 1970-01-01
      • 2016-07-28
      • 2010-11-08
      相关资源
      最近更新 更多