Articles of uwsgi

如何在使用virtualenv时设置nginx和uwsgi?

我将首次开始使用virtualenv。 如果我打算在每个环境中都有一个django项目,是否有一个nginx实例正在运行,并且每个域指向一个运行带-H env参数的uwsgi实例的套接字? 这样,我将有1个nginx实例运行和多个(每个环境1)uwsgi实例?

uwsgi皇帝模式 – 警告消息

我使用以皇帝模式运行的uwsgi在一台服务器上为多个Django应用程序提供服务。 因此,对于每个项目我都有一个像这样的自己的configuration文件: <uwsgi> <master>true</master> <processes>1</processes> <vaccum>true</vaccum> <chmod-socket>666</chmod-socket> <socket>/tmp/%n.sock</socket> <uid>www-data</uid> <gid>www-data</gid> <pythonpath>%d../%n</pythonpath> <module>%n</module> </uwsgi> 一切工作正常,关心我或我不完全理解的唯一事情是,当我运行“uwsgi –emperor / home / user / apps / vassals /”uwsgi时,我得到警告信息“ *警告:你以root身份运行uWSGI !!!(使用–uid标志)* “。 我可以忽略这个消息,还是这意味着uwsgi不考虑项目configuration文件中的uid gid设置? 非常感谢。 马里奥

uwsgi + apache – 命令“uWSGISocket”无效,可能是拼写错误或未包含在服务器configuration中的模块

我有这个错误: 命令'uWSGISocket'无效,可能是拼写错误或由未包含在服务器configuration中的模块定义的 <VirtualHost *:80> ServerAdmin [email protected] ServerName voorloopnul.com ServerAlias www.voorloopnul.com DocumentRoot /var/www <Directory /> Options FollowSymLinks Indexes AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> <Location /> Options FollowSymLinks Indexes SetHandler uwsgi-handler uWSGISocket 127.0.0.1:3031 </Location> <Location /static> SetHandler none </Location> Alias /static //srv/apps/voorloopnul/voorloopnul/static/ ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel […]

为什么uWSGI不加载在nginxconfiguration中指定的应用程序?

我有一台服务器使用nginx(1.1.19)和uWSGI(0.9.8)服务多个Django站点。 uWSGI在VirtualHosting模式下运行,并按照文档中的说明dynamic加载应用程序: http ://projects.unbit.it/uwsgi/wiki/VirtualHosting 目前有5个Django站点在服务器上运行,像这样的nginxconfiguration: # /etc/nginx/sites-enabled/www.example.com server { listen xxx.xxx.xxx.xxx:80; server_name www.example.com example.com; if ($host != 'www.example.com' ) { rewrite ^/(.*)$ http://www.example.com/$1 permanent; } location / { uwsgi_pass 127.0.0.1:8000; include uwsgi_params; uwsgi_param UWSGI_CHDIR /var/www/www.example.com/wsgi; uwsgi_param UWSGI_SCRIPT production; uwsgi_param UWSGI_PYHOME /var/envs/www.example.com; } } 其他4个站点的configuration方式完全相同,用example.comreplace了真实域。 uWSGI使用以下选项运行: /usr/local/bin/uwsgi –socket $SOCKET –chmod-socket –master –harakiri $HARAKIRI –sharedarea $SHAREDAREA –processes […]

使用nginx和uwsgi进行微型caching

我正在运行我的个人网站与python在nginx与uwsgi写。 由于该网站是非常静态的,我想通过添加微型caching来提高性能。 nginx和uwsgi都提供caching。 nginx微caching的例子 uswgicaching的例子 有人可以解释两个变种之间的差异,给我一个最好的build议?

uwsgi – harakiri工人与破pipe

有没有可能configurationuwsgi杀死pipe道破碎的工人? 原因: – 我们使用服务器发送的事件(事件是一个pubsub服务); – 客户端断开连接时,无法终止订阅,并且服务器进程将写入uWSGI,uWSGI将尝试写入closures的连接。 直到我们find一种方法来优雅地终止订阅,我们正在寻找一种解决办法,杀死那些工人。

卸载uwsgidynamic应用程序

我有一个uWSGI设置,我运行dynamic模式,并添加应用程序。 所有的应用程序都使用相同的代码库,但每个应用程序都有自己的设置文件。 它的工作很好。 举例来说,我想更改一个已经加载的应用程序的设置。 有没有办法让我的uwsgi重新加载应用程序,而不是重新启动整个uwsgi服务器? 在皇帝模式下,我可以触摸configuration文件。 如何在dynamic模式下达到相同的效果?

uWSGI snmp统计信息

我有兴趣通过snmp收集统计uWSGI在Cacti中的图表。 根据这些文档,我开始与uwsgi: uwsgi -s :3031 –udp 192.168.10.1:2222 –snmp –snmp-community foo –emperor /usr/local/uwsgi/vassals –emperor-tyrant –pidfile /var/run/uwsgi.pid –vacuum 他们提供的示例snmpget命令工作正常: $ snmpget -v2c -c foo 192.168.10.1:2222 1.3.6.1.4.1.35156.17.1.1 SNMPv2-SMI::enterprises.35156.17.1.1 = Counter64: 0 然而,除了那个之外,我看不到任何其他的snmp“价值”。 我不应该能够从基地OID snmpwalk? 当我试图看看什么值暴露,我得到一个超时。 snmpwalk -v2c -c foo 192.168.10.1:2222 1.3.6.1.4.1.35156.17 Timeout: No Response from 192.168.10.1:2222 从我引用的文档: 一般信息由uWSGI服务器本身pipe理。 访问uWSGI SNMP信息的基础OID是1.3.6.1.4.1.35156.17(iso.org.dod.internet.private.enterprise.unbit.uwsgi)。 常规选项映射到1.3.6.1.4.1.35156.17.1.x。 我一般不了解snmp,或者uWSGI提供snmp方式。 谢谢你的帮助。

设置UWSGI在venv中运行一个模块

我很难从UWSGI运行一个模块。 这是我的部署代码的一部分: # ENVIRONMENT /usr/bin/pip install virtualenv mkdir -p /srv/www/test /usr/local/bin/virtualenv /srv/www/test/venv source /srv/www/test/venv/bin/activate /srv/www/test/venv/bin/pip install –force-reinstall -e [email protected]:xyz/project.git#egg=project 这是模块根目录中的run.py代码 from project import app def main(): """docstring for main""" app.run(debug=True) if __name__ == '__main__': main() 这是我试图用来运行它的命令: / usr / local / bin / uwsgi –virtualenv $ ENV –module项目–chdir $ APP – 主 这是运行此命令后得到的消息: uWSGI以root身份运行,可以使用–uid / […]

怎么可能用cgi-plugin + heartbeat配合nginxconfiguration皇帝模式下的uwsgi

在我的ToDo列表中从fcgiwrap迁移到uWSGI(这也带来了我计划使用的其他许多好处)之后,我终于设法build立了一个以uWSGI v2.0为特色的debian-wheezytesting系统, nginx v1.4.4。 在第一步中,我想通过uWSGI的cgi-plugin可靠地运行.cgi-scripts,并以最小的开销(相当弱的硬件),同时可以轻松地增强我的configuration,同时也可以通过框架部署应用程序,例如bottle / flask / django作为第二步。 所以我select了使用uWSGI的皇帝模式 ,这个模式目前只能控制一个configuration来运行uWSGI-cgi-plugin的两个工作者,每个工作者有两个线程。 检查出各种function之后,设置或多或less都可以正常运行了,但我觉得有两种奇怪的行为,我认为这些行为是错误的 : 一旦配件被configuration为向皇帝发送心跳(例如,通过向.ini添加heartbeat = 20 ),如果.cgi没有在定义的心跳时间内运行,则皇帝将重复杀死/重新生成附属的主人。 configuration的工人数量似乎并不重要。 这个vassal忽略了reload-mercy = 10这个选项,因为它仍然logging着your mercy for graceful operations on workers is 60 seconds (这是默认值)。 好吧,这只是一个小问题,与我无关。 使用心跳选项的原因是我想尽可能使用内置的uWSGI机制来保证我的cgis / apps的可用性。 任何提示我可能会误解或做错? 我看不出任何明显的原因,为什么不应该在我的configuration中将心跳选项与cgi-module结合使用,而是希望得到更进一步的了解! 我假设nginx与上述问题无关,另外我还仔细检查了文件和目录 – perms … uWSGI是通过init.d-script启动的,但是手动启动时的行为是一样的。 我的configuration如下: 在nginx.conf中的部分: location ~ ^/cgi-bin/.*\..+$ { root /usr/local/nginx/vhosts/testdomain.com/cgi-bin; gzip off; include uwsgi_params; uwsgi_modifier1 […]