Articles of uwsgi

Ubuntu语言环境对Python应用程序不正确

我在Amazon EC2的Ubuntu AMI上安装了NGINX – > UWSGI – > Django(python)堆栈。 访问名称中包含unicode字符的文件时遇到问题。 Django App(Mezzanine)的确切输出是 尝试访问包含path中的Unicode字符的文件,但不知何故当前的语言环境不支持utf-8。 您可能需要将“LC_ALL”设置为正确的值,例如:'en_US.UTF-8'。 现在,当我运行locale命令输出是: LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8 对我来说,一切都看起来不错,所以接下来我添加了一些代码来打印出生成错误的代码段中的语言环境设置。 其结果是: locale.getdefaultlocale() = (None, None) locale.getpreferredencoding() = 'ANSI_X3.4-1968' sys.getdefaultencoding() = 'ascii' sys.getfilesystemencoding() = 'ANSI_X3.4-1968' 所以这看起来不正确,但我不知道如何解决它。 当我在python shell中运行相同的代码时,一切看起来好多了。 locale.getdefaultlocale() = ('en_US', 'UTF-8') locale.getpreferredencoding() = 'UTF-8' […]

如何使用Redis作为Nginx中uwsgi_cache的caching后端

我使用Nginx的HttpUwsgiModule,我想执行caching。 我知道有一个uwsgi_cache可以用来caching本地文件系统上的页面。 但是我想用Redis来caching内存中的页面。 我看了一下HttpRedis和HttpSRCacheModule,但我无法弄清楚如何完全使用它们。 也许这只是因为我是Nginx的新手。 如果有人能给出一个详细的configuration示例,我将不胜感激。

上游超时(110:连接超时),从上游读取响应头

出于某种原因,每当我在服务器上运行查询时,我都会收到此错误。 在我的本地设置,这个查询需要大约7-8秒才能返回,但它保持超时在我的实际服务器上。 错误: 2014/03/26 13:40:13 [error] 11084#0: *22 upstream timed out (110: Connection timed out) while reading response header from upstream, client: xxxxx, server: xxxx request: "GET /xxxxx/ HTTP/1.1", upstream: "uwsgi://unix:///srv/www/poka/app/poka/nginx/poka.sock", host: "xxxx" 2014/03/26 13:41:26 [error] 11084#0: *80 upstream timed out (110: Connection timed out) while reading response header from upstream, client: xxxxx, server: xxx, […]

AssertionError与示例testing应用程序与pypy使用uwsgi

我试图让样品pypytesting你好世界应用程序使用uypcgi与pypy运行。 我试图用我的主目录下的pypy插件(使用python uwsgiconfig.py –plugin plugins/pypy )和pypy来构builduwsgi。 http://uwsgi-docs.readthedocs.org/en/latest/PyPy.html 但是,当我使用该命令 ~/uwsgi-2.0.4/uwsgi –plugin ~/uwsgi-2.0.4/pypy –http-socket :9090 –pypy-home ~/pypy-2.2.1-linux64/ –pypy-wsgi uwsgi_pypy_test.wsgi –pypy-lib ~/uwsgi-2.0.4/plugins/pypy/libpypy-c-x86_64_20130524.so 它以OperationalError和AssertionError退出: *** Starting uWSGI 2.0.4 (64bit) on [Wed May 7 11:14:46 2014] *** compiled with version: 4.6.3 on 01 May 2014 10:11:39 os: Linux-3.8.0-35-generic #52~precise1-Ubuntu SMP Thu Jan 30 17:24:40 UTC 2014 nodename: mcp03 machine: x86_64 […]

uwsgi抱怨没有findpython应用程序

看起来像uWSGI应用程序相当普遍,但仍然找不到任何有价值的解决scheme。 我可以使用uwsgi 1.0.3和python2.7在Ubuntu 12.04上工作 这是我的config.ini文件: [uwsgi] uid = www-data gid = www-data pythonpath = /path/to/my/application plugins = python27 module = launcher.py workers = 2 vacuum = True max-requests = 1000000 harakiri = 120 harakiri-verbose = true need-app = true buffer-size = 32768 listen = 200 master-as-root = true max-fd = 10240 #memory-report = true #stats […]

如何在CentOS上使用uWsgi和nginx来部署django

我的Django版本是1.6.3 我下载了uwsgi-2.0.4。 有人说使用命令安装uwsgi make有人使用python setup.py构build。 究竟是什么区别? 我看到一个教程,说创build一个名为django_wsgi.py的python文件,但我已经在我的django项目中有一个wsgi.py。 它使我困惑不已。 Django_wsgi,uWsgi,wsgi ….有什么区别和function? 然后我想testinguwsgi是否正常工作,所以我写了一个test.py: # test.py def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return "Hello World" 我执行它 uwsgi –http :8001 –wsgi-file test.py 但错误会失败 uwsgi: unrecognized option '–http:8001' 我该如何解决?

AWS ELB奇怪的502响应

我的网站今天下午突然失败,以502回应每一个请求。 我在ELB后面设置了3个后端实例,每个都安装了Nginx。 起初,我怀疑后端实例有问题。 但根据ELB控制台中的状态描述,所有的实例都在服务中。 然后,我login到其中一个实例来查看Nginx和应用程序(与uwsgi )日志。 我发现那里实际上没有5xx错误,我可以看到请求以200 OK响应。 根据故障排除手册 ,502的原因可能是 来自实例的格式错误的响应或负载平衡器可能存在的问题。 我没有升级Nginx或uwsgi,所以我不认为我的后端已经返回了ELB无法理解的错误响应。 还有什么可能导致这样的情况? BTW: 我已经通过回滚到我的应用程序的旧版本而停止了502 ,即使重新部署了原始版本,它也继续工作,所以我想这是重新启动的工作。

显示运行UWSGI实例的configuration

我有一个UWSGI实例,它从INI文件获取它的configuration。 一切似乎都很好,除了它似乎没有正确接受缓冲区大小configuration选项。 我有它设置为65535,但我在我的日志中得到这样的错误消息: 无效的uwsgi请求(当前的大小:41260)。 跳跃。 在我看来,它跳过低于缓冲区大小限制的请求。 有没有办法转储正在运行的实例正在使用的选项,以便我可以validation它的缓冲区大小?

uWSGI不会通过Upstart启动,但可以从控制台启动

我试图让uWSGI 在启动时在一个Vagrant盒子上运行 。 所以我用以下内容创build了/etc/init/uwsgi.conf : # simple uWSGI script description "uwsgi tiny instance" start on runlevel [2345] stop on runlevel [06] respawn exec /usr/local/bin/uwsgi –ini /vagrant/share/uwsgi.ini 如果我从控制台运行start uwsgi ,但启动时无法启动。 /var/log/syslog包含以下内容: kernel: [ 6.234112] init: uwsgi main process (1017) terminated with status 1 kernel: [ 6.234122] init: uwsgi main process ended, respawning … kernel: [ 6.586285] […]

如何configurationnginx和uwsgicaching一个url?

Update2:添加uwsgi_ignore_headers Cache-Control Set-Cookie X-Accel-Expires Expires Vary; 并解决问题。 感谢大家。 更新:我试过uwsgi_ignore_headers Cache-Control Set-Cookie X-Accel-Expires Expires Vary; 。 不工作。 我还发现,如果我在同一台计算机上的不同浏览器中以相同的请求login状态,caching仍然不起作用。 这真的很傻… 我已经看到下面的评论,但我不知道如何将其应用到configuration文件。 我想cachingurl / ,它运作良好,但我发现,如果我login或注销,caching不工作。 为什么? 我只是想caching/反正。 这是我的configuration: uwsgi_cache_path uwsgi_cache_path /app/path/nginx_cache levels=1:2 keys_zone=my_cache:1m max_size=50m inactive=30m use_temp_path=off; server { … location = / { uwsgi_pass 127.0.0.1:3032; include /app/path/uwsgi_params; uwsgi_cache my_cache; uwsgi_cache_key "$host$uri$is_args$args"; uwsgi_cache_valid 5m; } … }