内部异步微服务需要使用gunicorn吗?

时间:2019-02-27 06:22:48

标签: http nginx gunicorn sanic preforking

据我在Internet上阅读的所有内容,部署Flask / Django应用程序的最佳实践是将Web服务器(如nginx)放在后面,并与前叉服务器(如gunicorn或uWSGI)捆绑在一起。

这有很多好处,例如ssl终止,防止HTTP攻击(nginx),为线程并发而分叉,在内存泄漏后重新启动应用程序或其他异常(gunicron)。

我想在sanicpm2上部署内部API微服务,因为它不是面向客户的,而是只能从内部服务中调用,SSH终止和针对HTTP攻击的防护是无关紧要的是,并发性由sanic的asyncio性质保证,异常时重启由pm2处理。

我还需要gunicorn和nginx吗?我不能直接按原样运行应用程序进程,然后让它直接与其调用者对话吗?

2 个答案:

答案 0 :(得分:2)

您绝对不需要在堆栈前面放上枪灰。 Sanic由于没有自己的内部服务器,因此无需在其前面安装Web服务器就可以很好地运行。

我仍然会主张使用nginx终止TLS并处理静态文件(尽管sanic可以完成这两个任务),因为这样做非常有效。

以下是我在同一问题上给出的另一个答案的链接:https://community.sanicframework.org/t/gunicorn-uwsgi-vs-build-in-http-server/47/2?u=ahopkins

答案 1 :(得分:0)

您不需要它。查看http://supervisord.org/以启动,重新启动,自动重新启动等服务。

那是说我一起使用古尼康和主管。