【问题标题】:Start two http servers in Django在 Django 中启动两个 http 服务器
【发布时间】:2019-10-28 11:10:13
【问题描述】:

我在端口 8080(Django 1.6)上有工作应用程序。它绑定到外部网络接口。我想在我的 Django 应用程序中再添加一个 http 侦听器。例如。在端口 8000 上再添加一台 http 服务器,并将其仅绑定到内部网络接口。

在 Django 中有可能吗?

【问题讨论】:

  • 您能否澄清“仅内部网络接口”的含义?你在运行某种容器吗?您打算如何使用内部端口?没有什么能阻止您从同一个 Django 应用程序代码运行多个服务器。
  • @GjertG,我有 ip 绑定到互联网。和本地网络的 ip。
  • @GjertG,你能举个例子吗?
  • 我不太确定在这种情况下您希望 Django 做什么。网络不应由 Django 应用程序完成,而应由 Nginx 等代理服务器处理或受防火墙限制。
  • 如果你想在不同的端口上运行同一个 Django 应用程序的两个独立实例,我最好的猜测是你使用 Gunicorn/Daphne 的两个独立实例(或者你使用的任何 WSGI)然后使用Nginx 监听两个端口,重定向到正确的应用程序。如果您使用单独的 WSGI,则不会有问题。

标签: django multithreading python-2.7


【解决方案1】:

如果我在这里正确理解了您的用例,我的建议是运行两个单独的 Gunicorn/Daphne(或您使用的任何 WSGI/ASGI)实例,并使用 NGINX 作为代理通过不同的端口为 Django 应用程序提供服务。

这将为每个应用程序创建单独的内存空间,并使它们成为单独的进程。

如果您打算提高应用程序的性能,那么 Gunicorn 工作者将是您所寻找的。​​p>

【讨论】:

  • 感谢您的回答!还有一个问题:我是否希望他们共享记忆?如何在一个 django 进程中启动两个 http 服务器?
  • 然后我会使用一个 WSGI 服务并简单地让 NGINX 代理将两个端口指向同一个应用程序。老实说,这更像是一个网络/nginx 问题,而不是 Django 问题。我会查找您正在使用的 NGINX 和 WSGI 服务。
猜你喜欢
  • 1970-01-01
  • 2014-08-26
  • 2012-08-25
  • 1970-01-01
  • 1970-01-01
  • 2018-04-15
  • 2021-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多