首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有Apache的情况下在生产环境中运行Python Pyramid服务器

在没有Apache的情况下在生产环境中运行Python Pyramid服务器
EN

Stack Overflow用户
提问于 2019-09-12 01:56:45
回答 3查看 406关注 0票数 1

因此,我们过去常常在生产环境中使用Apache运行我们的金字塔服务器。但是为了更简单的产品部署等,我们正在转向Docker containerization,我们希望坚持“每个容器一个进程”的理念,而不是在容器中运行Apache +4个..so进程,我们只需要1个python进程。

所以我的问题是-有没有一种方法可以直接在生产环境中运行一台金字塔服务器?而不使用WSGI+Apache?

https://www.digitalocean.com/community/tutorials/how-to-use-the-pyramid-framework-to-build-your-python-web-app-on-ubuntu

我的理解是pserve只用于开发?

创建一个application.py文件,并填充以下内容:

代码语言:javascript
复制
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response

def hello_world(request):
    return Response('<h1>Hello world!</h1>')

if __name__ == '__main__':
    config = Configurator()
    config.add_view(hello_world)
    app = config.make_wsgi_app()
    server = make_server('0.0.0.0', 8080, app)
    server.serve_forever()

以上是否可以作为生产级服务器使用?

EN

回答 3

Stack Overflow用户

发布于 2019-09-12 03:24:01

最新的官方推荐是每个容器一个关注点。来自Docker docs (强调我自己的):

每个容器应该只有一个关注点。将应用程序解耦到多个容器中,可以更容易地水平扩展和重用容器。例如,web应用程序堆栈可能由三个单独的容器组成,每个容器都有自己的唯一图像,以解耦的方式管理web应用程序、数据库和内存缓存。

将每个容器限制为一个进程是一个很好的经验法则,但这并不是一个硬性的规则。例如,容器不仅可以由一个初始化进程产生,而且一些程序可能会自动产生额外的进程。例如,可以派生多个工作进程,而Apache可以为每个请求创建一个进程。

在您的案例中,您的web应用程序服务器是一个单独的关注点。运行Apache+WSGI完全没问题。不要担心进程--这是Apache的工作。

为了更好地理解“一个关注点”规则,this post很好地概述了它试图解决的问题。

票数 1
EN

Stack Overflow用户

发布于 2019-09-12 07:18:49

您可以使用Waitress,根据他们的文档,它是

...意味着它是一个产品级质量的纯Python WSGI服务器,具有非常可接受的性能。除了存在于Python标准库中的依赖项外,它没有任何依赖项。

女服务员是塔架项目的一部分,就像金字塔一样。

票数 0
EN

Stack Overflow用户

发布于 2019-09-13 02:22:07

当直接运行Python时,Bjoern看起来是一个可靠的选择,其中Python服务器具有WSGI绑定:

https://www.appdynamics.com/blog/engineering/a-performance-analysis-of-python-wsgi-servers-part-2/

https://github.com/jonashaag/bjoern

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57894461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档