NSF Back-end Dev Engineer

uwsgi

2020-10-20
nsf

uwsgi拾遗

1.uwsgi安装

首先安装python,pip,apt-get源不要修改,改完可能会有问题

pip源可以修改

Ubuntu16.04下部署 nginx+uwsgi+django1.9.7(虚拟环境pyenv+virtualenv)

django https://docs.djangoproject.com/zh-hans/2.1/intro/tutorial01/

uwsgi https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html#deploy-it-on-http-port-9090

nginx http://nginx.org/en/docs/http/ngx_http_uwsgi_module.html

可能遇到pkg_source丢失问题,将setuptool降到40.8.0版本,将pkg_source文件夹拷贝到site-packages文件夹下即可

python uwsgi https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/WSGIquickstart.html#flask

2.uwsgi数据库连接超时

这和uwsgi本身机制有关,如果在flask中使用公共连接来连接数据库,uwsgi开启多个线程,会导致连接pending问题。

默认情况下,uWSGI在第一个进程中加载整个应用,然后在加载完应用之后,会多次 fork() 自己,为了解决pending问题,可以使用lazy或者lazyapps模式。

lazy-apps模式会每个worker加载你的应用一次。它将需要大约O(n)次加载 (其中,n是worker数),非常有可能会消耗更多内存,但会运行在一个更加一致干净的环境中。

lazy-apps与lazy不同,前者只是指示 uWSGI对于每个worker加载应用一次,而后者更具侵略性些 (一般不提倡),因为它改变了大量的内部默认行为。

推荐使用lazy-apps


上一篇 jenkins使用

下一篇 cassandra

Comments

Content