据我在互联网上读到的--部署Flask/Django应用程序的最佳实践是将其放在一个web服务器(如nginx )后面,并将它们与一个预分叉服务器(如gunicorn或uWSGI )捆绑在一起。
这有很多好处,比如ssl终止、针对HTTP攻击的保护(nginx)、为了并发而派生线程、在内存泄漏后重新启动应用程序,或者其他异常(gunicron)。
我想用pm2在sanic上部署一个内部API微服务,因为它不是面向客户的,而是只会从内部服务调用SSH终止和对HTTP攻击的保护是无关紧要的,并发是由sanic的异步性质保证的,异常时的重启由pm2处理。
我还需要gunicorn和nginx吗?难道我不能按原样运行应用程序进程,让它直接与调用者对话吗?
发布于 2019-02-28 14:19:15
你绝对不需要在你的堆前面有黑角兽。Sanic可以在没有web服务器的情况下正常运行,因为它有自己的内部服务器。
我仍然主张使用nginx来终止TLS和处理静态文件(即使sanic可以做这两件事),因为它在这方面很有效。
下面是我对同一问题给出的另一个答案的链接:https://community.sanicframework.org/t/gunicorn-uwsgi-vs-build-in-http-server/47/2?u=ahopkins
发布于 2019-05-19 22:11:08
你不需要它。查看http://supervisord.org/以启动、重新启动、自动重新启动等您的服务。
这就是说,我将gunicorn和supervisord结合使用。
https://stackoverflow.com/questions/54899264
复制相似问题