我试图build立一个厨师的食谱,将让我的网站运行,似乎一切都工作正常,除了uWSGI这给我以下错误: *** has_emperor mode detected (fd: 6) *** [uWSGI] getting INI configuration from app-cms.ini removed uwsgi instance app-cms.ini 不再说这个: open("/var/www/app-cms/logs/uwsgi.log"): Permission denied [utils.c line 246] 该日志文件现在正在创build并包含以下内容: *** Starting uWSGI 1.0.3-debian (64bit) on [Thu Feb 6 12:00:43 2014] *** compiled with version: 4.6.3 on 17 July 2012 02:26:54 current working directory: /etc/uwsgi/apps-enabled writing pidfile to /var/www/ediflo-cms/run/ediflo-cms.pid […]
我用一个简单的hello世界程序在virtualenv内部的本地主机上运行了nginx + uWSGI,但是当我用一个简单的Flask应用程序replacehello world时,出现这个错误: File "./wsgi_configuration_module.py", line 1, in <module> from flask import Flask ImportError: No module named flask unable to load app mountpoint 这是烧瓶应用程序(wsgi_configuration_module.py): from flask import Flask application = Flask(__name__) @application.route("/") def hello(): return "hello world" if __name__ == "__main__": application.run() uWSGIconfiguration(app_conf.xml): <uwsgi> <socket>127.0.0.1:9001</socket> <chdir>/srv/www/labs/application</chdir> <pythonpath>/srv/www</pythonpath> <module>wsgi_configuration_module</module> <callable>application</callable> <no-site>true</no-site> </uwsgi> nginxconfiguration: server { […]
使用uWSGI服务一个简单的wsgi应用程序(一个简单的“Hello,World”)我的configuration工作,但是当我尝试运行一个Flask应用程序,我得到这个在uWSGI的错误日志: current working directory: /opt/python-env/coefficient/lib/python2.6/site-packages writing pidfile to /var/run/uwsgi.pid detected binary path: /opt/uwsgi/uwsgi setuid() to 497 your memory page size is 4096 bytes detected max file descriptor number: 1024 lock engine: pthread robust mutexes uwsgi socket 0 bound to TCP address 127.0.0.1:3031 fd 3 Python version: 2.6.6 (r266:84292, Jun 18 2012, 14:18:47) [GCC 4.4.6 20110731 […]
我怎样才能防止Nginx缓冲我的uwsgi应用程序的输出? 对于我的彗星风格应用程序,我正在使用长轮询,现在请求被缓冲。 我试图减小缓冲区的大小,但是我不允许将uwsgi_buffer_size和uwsgi_buffers设置为0.另外, uwsgi_max_temp_file_size不起作用(尽pipe手册提示)。 我怎样才能做到这一点?
TL; DR 谁能告诉我怎样才能在我的皇帝 – 诸侯设置中一举监控我的所有封臣? 我为我的uWSGI服务器设置了一个皇帝 – vassal设置,我需要监视我所有的vassals。 我总是可以检查我的应用程序日志中的各种数据,但更实时更新,全面显示所有统计信息更为方便。 所以,我尝试了几件事情: 我创build了一个包含以下内容的通用.ini文件: [uwsgi] stats = stats_vassal.sock 然后,在每个vassal的.ini文件中,我都包含这个通用的.ini文件。 这种方法的问题是,当我运行带有stats_vassal.sock文件的stats_vassal.sock时,我没有得到任何有意义的数据。 我为什么发生这种情况的假设是,该套接字中的数据不断被来自未使用的某个封套的统计信息覆盖。 所以然后我切换到…. 在每个vassal的.ini文件中,我设置了一个选项stats = stats_%n.sock 。 现在,我可以在每个stats_*.sock uwsgitop上运行uwsgitop来监视那个特定的vassal。 但我希望能够一口气监视所有的封锁。 uwsgitop似乎只接受一个参数。 我已经看了uWSGI的度量子系统 , “文件”统计推进器似乎是我想要的,因为它不断追加到一个文件。 然而,当我试图把stats-push = file:path=stats_%n.sock,freq=1在我的每个vassal .ini文件中, 或者当我试着把stats-push = file:path=stats_vassal.sock,freq=1在我的常见vassal .ini文件中,当我重新启动uWSGI时出现以下错误: 无法find“文件”stats_pusher 然后我试图包括在同一个.ini文件中的stats_pusher_file插件,但得到了以下错误: ! 无法加载uWSGI插件:./stats_pusher_file_plugin.so:无法打开共享对象文件:没有这样的文件或目录! 而这正是我陷入死胡同的地方。
我试图得到一个LNP [Linux的Nginx Python]堆栈(这是甚至是一个东西?嘿),但我有一些困难。 很多博客文章和文档似乎都围绕使用Upstart来pipe理uWSGI进程,这很好,但是我注意到在/etc/uwsgi/{apps-enabled,apps-available} uwsgi中安装了init.d脚本和一些configuration目录的软件包/etc/uwsgi/{apps-enabled,apps-available} 。 所以显然有一个更好的方法来做到这一点。 我有一些configuration文件(下面),但我似乎无法启动uwsgi进程,运行init.d脚本什么也不做,报告成功,但失败(甚至没有日志)。 当我直接执行uWSGI我得到这个: % sudo uwsgi -i /etc/uwsgi/apps-enabled/site.ini tmp = / [uWSGI] getting INI configuration from /etc/uwsgi/apps-enabled/site.ini /usr/lib/uwsgi/plugins/python27_plugin.so 另外值得注意的是,当我尝试访问该网站时抛出的错误: % cat logs/error.log 2012/01/08 23:26:12 [crit] 9167#0: *13 connect() to unix://tmp/site.sock failed (2: No such file or directory) while connecting to upstream, client: 60.241.99.33, server: mysite.com, request: "GET / HTTP/1.1", […]
我有一个Django网站,我试图通过uWSGI服务器。 我已经启动了这样的服务器: uwsgi –emperor . Ctrl+Z bg 1 (有两个.ini文件,分别指向站点的testing版本和生产版本,分别在9001和9002上) 然后我试图让我的网站: curl http://localhost:9002 当我这样做的时候,我收到一条消息,说血pipe是忠诚的,但没有实际的反应。 uwsgi.log然后包含以下内容: [pid: 5071|app: 0|req: 2/2] 127.0.0.1 () {26 vars in 357 bytes} [Tue Jul 23 13:20:21 2013] GET / => generated 0 bytes in 1 msecs (HTTP/1.1 302) 2 headers in 96 bytes (1 switches on core 1) 没有错误logging。 我应该说,这在重新启动之前工作得很好,所以uwsgi.ini文件应该没问题。 任何想法,我应该开始诊断这个?
虽然对于已经熟悉服务器pipe理的人来说,uwsgi文档可能没有问题,但对于想要学习的人来说,这肯定不是很有帮助。 我希望有人能帮助下面的问题。 我读过,它可以closures/重新加载进程优雅。 但是,这是什么意思? 还有什么可以优雅地closures? 什么时候这些进程可以优雅/丑陋地closures? 这是一个进程崩溃吗? 或者,如果我selectclosuresuwsgi,例如通过按ctrl + c? 或者在其他一些情况下? 我可以testing一下这个优雅吗?例如,挑衅的方式是碰撞/closures,然后看看有没有主人的结果? 它是否会让stream程优雅地closures? 由于启用主进程是可选的,因此必须存在不利于使用它的情况。 这些情况是什么?
所以我正在尝试uWSGI并喜欢它。 我有一个关于使用.ini文件的问题。 是否有可能dynamic地计算其.iniconfiguration参数的值? 例如,对于我的“uwsgi.ini”文件中的“chdir”值,我有 [uwsgi] socket=127.0.0.1:3034 chdir=/Users/calvin/work/myproject virtualenv=/Users/calvin/.virtualenvs/myproject module=django.core.handlers.wsgi:WSGIHandler() env= DJANGO_SETTINGS_MODULE=myproject.settings master=True pidfile=/tmp/myproject-master.pid vacuum=True max-requests=5000 daemonize=/var/log/uwsgi/myproject.log 为我的“本地机器”,我的“开发/登台”服务器和我的“生产服务器”编写3个单独的.ini文件是相当麻烦的。 更不用说同事的本地机器的chdir价值将会完全不同。 我尝试使用import os和os.join.pathdynamic计算chdir值,但它不起作用,这是可以预料的,因为uwsgi没有Python解释器?
我有一个在uwsgi + nginx上运行的Flask web服务,它运行良好。 我有另一个服务器上运行的另一个开发版本的服务。 它也运行在uwsgi + nginx上。 我想要做的是,testing开发服务器'真正'的stream量(POST请求)我已经做了validation开发服务器基本上工作良好。 只是想比较两个相同的实际stream量。 我的基本想法如下: (A)是传统服务器(B)是testing服务器 用户请求 Nginx(A)获取请求并将请求传递给uwsgi(A)进行处理。 Nginx(A)“复制”请求并将其交给Nginx(B)进行testing uwsgi(A)在Flask App(A)中处理请求并响应用户(通过Nginx(A)) Nginx(B)像传统服务器一样处理请求,但不响应用户(只是日志logging) 这是有道理的吗? 我应该采取什么方法?