Articles of uwsgi

为什么我的uWSGI进程立即死亡?

我使用Supervisor和uWSGI Emperor模式。 当我设置limit-as 512 (MB)时,工人立即死亡(重生,死亡,重生,死亡,每3/4秒): [uwsgi] workers = 4 threads = 40 limit-as = 512 harakiri = 20 max-requests = 1600 … non-performance/memory/processor-related settings ommitted 但是,如果我改变了limit-as : [uwsgi] workers = 4 threads = 40 limit-as = 1024 harakiri = 20 max-requests = 1600 … non-performance/memory/processor-related settings ommitted 并重新启动uwsgi, 问题立即消失 。 为了摆在这一点,我已经修改了设置回512,再次重新启动, 问题立即回来 。 注意:我的应用程序是一个简单的Django应用程序,在启动时没有额外的Python设置。

uwsgi nginx web.py interal服务器错误:未find应用程序

在我的nginx网站 – 可用/默认这是我的应用程序的相关部分: location /app/ { include uwsgi_params; uwsgi_pass unix:///tmp/uwsgi.socket; } 我在uwsgi / sites-available /文件夹下的app.xml文件: <uwsgi> <socket>/tmp/uwsgi.socket</socket> <plugins>python</plugins> <chdir>/web/NetWeaveCustom</chdir> <module>index</module> </uwsgi> 最后我的/web/NetWeaveCustom/index.py模块如下: import web urls = ( '/(.*)','index' ) app = web.application(urls, globals()).wsgifunc() class index: def GET(self,name): return name 这是我的uwsgi错误日志: GET / app / =>生成了48个字节。[pid:15963 | app:-1 | req:-1/15] 192.168.1.98(){42 vars in 686 bytes} [Sun […]

Ubuntu 12.04服务器 – Django与uWsgi不能正常工作

我对于使用服务器相当陌生。 我试图在uwsgi&nginx的Ubuntu 12.04 AWS上运行Django。 我find了一个我正在学习的教程: http : //uwsgi.readthedocs.org/en/latest/tutorials/Django_and_nginx.html 我创build了一个虚拟evn: virtualenv uwsgi-tutorial cd uwsgi-tutorial source bin/activate 然后我使用pip安装了Python&Django。 然后我开始了一个名为mysite的Django项目 然后我安装了uwsgi pip install uwsgi 然后我创build了一个test.py文件: def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return "Hello World" 然后我跑了uwsgi: uwsgi –http :8000 –wsgi-file test.py 如果我的浏览器指向我的http://myip:8000我将在浏览器中看到Hello World 。 但是,我的浏览器正在等待,因为它根本不连接到服务器。 当我运行uwsgi –http :8000 –wsgi-file test.py我得到这个输出在terminal: *** Starting uWSGI 2.0.1 (64bit) on [Tue Feb 25 […]

NGINX + uWSGI +烧瓶。 有些请求非常慢

我们正在运行一个相当大的Flask应用程序,发现在随机的时候,我们会得到一个非常缓慢的请求(有时一分钟或更多) 我认为这个问题与延迟加载模块有关,而慢速请求则是当新工作者需要启动或重新加载时。 (我们原来有Apache + mod_wsgi的这个问题,但是决定尝试使用uWSGI,因为它是对工作者的先行工作)。 但即使重装不一致。 通常我可以重新加载,请求有点慢,但不显着。 我知道延迟加载是在Django中的东西,但据我所知文档Flask不这样做,除非它configuration为。 我不知道为什么请求会继续这么慢。 为了增加神秘感,我在EC2后面运行这个负载平衡器(仅仅用一个实例)。 通过负载均衡器连接时,我似乎遇到了比直接连接时更多的问题,但又是随机的。 通过负载平衡器的大多数请求不会超过10ms左右。 这里有各种configuration: nginx的: server { listen 80; server_name dev.mysite.net root /var/www/mysite; location / { include uwsgi_params; uwsgi_pass unix:/var/run/uwsgi/mysite.sock; } } uWSGI(皇帝pipe理) [uwsgi] base = /usr app = my_app.py pythonpath = /usr/lib/python2.7 pythonpath = /usr/lib/python2.7/site-packages pythonpath = /usr/lib/python2.7/dist-packages pythonpath = /var/www/mysite socket = /var/run/uwsgi/%n.sock module […]

504网关超时uwsgi + nginx django应用程序

我尝试使用Nginx + uwsgi运行我的Django应用程序,但在加载一分钟后收到504 Gateway Time-out 。 我的应用程序需要一些时间来做它需要的东西,因为它在几个网站上search特定的东西 我的nginx conf是下一个: upstream uwsgi { server 127.0.0.1:8000; } server { listen 80; server_name server_ip; root /opt/emails/subscriptions; index index.html index.htm index.php; location /emailsproject/ { root /opt/emails/subscriptions/; } location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://uwsgi; proxy_set_header Host $http_host; uwsgi_read_timeout 18000; } } 我的uwsgi脚本: description "uWSGI server" […]

nginx + uwsgi: – 不可用修饰符请求:0 – ?

我正在关注这个在Gentoo上安装和configurationNginx,uWSGI和Django。 一切都看起来不错,直到最后一步:Nginx返回502错误的网关错误,以下内容出现在uWSGI日志中: *** Starting uWSGI 1.2.4 (32bit) on [Mon Sep 10 23:41:29 2012] *** compiled with version: 4.5.3 on 02 September 2012 22:00:55 detected number of CPU cores: 2 current working directory: /var/www/localhost/htdocs/mysite writing pidfile to /var/run/uwsgi/trac.pid detected binary path: /usr/bin/uwsgi your memory page size is 4096 bytes building mime-types dictionary from file /etc/mime.types…1017 entry […]

nginx和uwsgi; 不同的端口

我有Nginx和uwsgi的两个python虚拟环境。 这些环境用于开发和生产。 我想要的是运行生产:80和开发:6544端口 这是我的configuration server { listen 80; access_log off; error_log /var/log/nginx/http.prod.error.log; charset utf-8; location / { uwsgi_pass unix:///tmp/uwsgi.sock; include uwsgi_params; } } server { listen 6544; access_log off; error_log /var/log/nginx/http.dev.error.log; charset utf-8; location / { uwsgi_pass unix:///tmp/uwsgi.sock; include uwsgi_params; } } 当我做%production%/bin/uwsgi –ini-paste-logged %production%/production.ini它运行良好。 但是当我试图启动dev版本%dev%/bin/uwsgi –ini-paste-logged %dev%/dev.ini我得到了下一个在uwsgi.log: *** Starting uWSGI 1.9.12 (64bit) on [Fri […]

使用uWSGI从GIT提供文件

大家,早安! 在我的日常工作中,我们使用NGINX + uWSGI + MongoDB作为Python应用程序容器。 对于版本化和协作开发,我们在每台开发人员计算机上使用GIT进行安装,并将一个中央GIT存储库用于交付目的。 一切运转顺利,但有一个小问题。 到目前为止,当我们想要提供新版本的内部软件时,所有开发人员合并他们的变更,然后select一个(通常是项目经理)将最终产品推送到中央GIT服务器上的“分支主”存储库。 一旦这个推送完成,一个在GIT上持续查看的脚本将检索新版本,并将其推送到我们的uWSGI服务器上,然后为所有新连接加载新版本。 现在,我们想知道如何能够推送GIT服务器,并且uWSGI直接从这个GIT服务器加载和服务它的web应用程序。 有没有人有类似的解决scheme或uWSGIconfiguration这样做?

Nginx的网关(502)错误的Django 500错误(而不是显示Django的500页)与DEBUG = False设置

我有我的当前设置的问题…而问题是,如果我在Django的settings.py文件中设置DEBUG = False nginx停止显示500错误的django回溯,但不显示我们的500页。 它只显示nginx 502错误的网关错误。 我确实收到跟踪回复的电子邮件错误,就像我configuration它将回溯邮件发送给我一样。 但我想显示不错的500页给用户不Nginx的502网关错误… 老实说,我甚至不知道从哪里开始寻找问题的根源。 我准备发布所有必要的configuration文件,如果有些nginx专家会来告诉我他想看什么。 艾伦 编辑1:我查了什么日志文件显示在500错误之一,它显示了这一点: [pid: 16203|app: 0|req: 1/1] my.ip.address () {46 vars in 915 bytes} [Thu Sep 12 10:01:17 2013] GET /settings/personal/ => generated 0 bytes in 1249 msecs (HTTP/1.1 500) 0 headers in 0 bytes (0 switches on core 0) 这是否意味着它以某种方式django错误导致它看起来像Django返回0字节?

Nginx:使用uwsgi_pass与proxy_pass后备?

如果uwsgi服务器不可用,是否可以configurationNginx来代理uwsgi服务器( uwsgi_pass ),回到标准的http代理( proxy_pass )? 我的开发环境作为给定端口上的标准HTTP服务器来运行,但是在生产中它将在uWSGI套接字下运行。 我希望能够开发我的应用程序,然后(仍然在我的开发计算机上)在uwsgi服务器下启动应用程序进行testing,而不必每次都切换我的nginxconfiguration。 如果nginx可以configuration为使用uwsgi_pass 尝试 ,但是如果出现错误(因为uwsgi服务器没有运行),则返回到proxy_pass,这将是理想的。 我也可以看到这在生产环境中很方便:通常,代理本地uwsgi套接字,但如果由于某种原因不起作用(对于某些任意定义不起作用),代理到某个辅助http服务器。 不过,现在只是为了让开发更方便。