Articles of mod wsgi

Apache与mod_wsgi – 如何拒绝请求,如果所有线程都忙?

我们有一个运行Apache的服务器,其中一个虚拟主机使用mod_wsgi来根据请求运行繁重的任务。 服务器可以一次处理X个请求,每个请求将运行约10分钟。 如果所有线程都处于忙碌状态,我不希望让新客户端等待,如果没有线程空闲,我想让服务器立即以503状态响应。 我试图使用各种超时来实现这一点,但它不能按需要工作。 这是我试过的(只有一个线程),但它使新的客户端等待1800秒,然后以504状态响应。 WSGIDaemonProcess xxx user=xxx group=xxx processes=1 threads=1 connect-timeout=10 queue-timeout=10 deadlock-timeout=2000 socket-timeout=1800 listen-backlog=0 我怎样才能使服务器只接受与WSGI守护进程的线程一样多的连接? (服务器运行Apache 14.04和mod_wsgi 4.5)

我的apache进程之一是巨大的 – 我怎么知道为什么?

我使用mod_wsgi运行Apache 2.2.12,托pipe一个Django站点。 大多数apachesubprocess的权重大约是125MB的RSS,但偶尔我会看到一个subprocess的RSS大于1GB。 在这一点上,通常有一个巨大的进程(> 1GB),几个大的进程(> 500MB),其余的大概是125MB。 这些是mod_wsgi守护进程。 我已经尝试在Python中使用内存泄漏跟踪来查看它是否是Django代码,并且我看不到任何泄漏。 查看日志不会显示任何特别奇怪的请求。 我很难弄清楚是什么原因造成的 – 有什么想法? 此外,任何解决方法杀死大的Apache进程,当它变得太大,没有把Apache下来? 一些更多细节: 不使用mod_php 使用前叉

使用apache2,mod_wsgi和django提供任意的子域名

我正在尝试使用沙箱方法设置一个django开发服务器。 具体的技术是apache2,mod_wsgi和django。 我想使用格式为:{project} – {user} .domain.com的子域名。 我想这个子域指向这里:/首页/ {用户} / {项目} /应用程序/ django.wsgi。 是否可以通过虚拟主机设置自动工作,如果是这样,这样的虚拟主机文件将是什么样子?

django + wsgi + suexec + userdir + apache?

我有一个django 1.1网站,我想运行在wsgi(因为这似乎是推荐部署在Apache)。 我希望它以www用户身份运行(apache以www数据运行)。 我理想喜欢这个工作的http://主机名/〜www / (〜www / public_html)以及http:// virtualhostname / 。 我也希望这可以为以后使用wsgi的其他用户工作。 我能做到这一点吗? 我一直在盯着文件试图从哪里开始,但我遇到了麻烦结合userdir和wsgi让我运行〜xxx / public_html / index.wsgi作为用户xxx,为每个用户xxx。

WSGI说我的Ubuntu服务器上的“权限被拒绝”,没有WSGISocketPrefix设置工作

我正在尝试在Ubuntu 10.04.3 LTS(lucid)上使用支持守护进程的mod_wsgi来运行Apache2。 问题是,我无法findWSGISocketPrefix指令的工作configuration。 我的设置是: <VirtualHost *:80> … WSGIDaemonProcess myapp threads=5 WSGIScriptAlias / /var/www/myapp/myapp.wsgi <Directory /var/www/myapp> WSGIProcessGroup myapp WSGIApplicationGroup %{GLOBAL} WSGIScriptReloading On Order deny,allow Allow from all </Directory> </VirtualHost> Apache以root身份运行。 我使用的Flask Python框架,所以我遵循这个教程: http : //flask.pocoo.org/docs/deploying/mod_wsgi/#configuring-apache 。 没有任何其他设置,我得到503服务暂时不可用的 HTTP错误。 在Apache错误日志中,我收到了以下消息: [Mon Oct 17 15:24:24 2011] [error] [client 90.181.85.69] (13)Permission denied: mod_wsgi (pid=21805): Unable to connect to […]

Django,mod_wsgi,MySQL高CPU – 问题

我在OSQA网站遇到问题。 这是Django / Apache / mod_wsgiconfiguration的网站。 每个小时,CPU对任务HTTPD的峰值达到164%(平均)。 10分钟后,它释放回来。 我已经查看了日志,cron表,做了许多configuration更改,但不能跟踪这个问题。 有人可以看看下面的信息,让我知道,如果这是一个configuration问题,或者是否有其他人遇到过这个问题。 运行TOP显示HTTPD使用165%的CPU VMware性能监视器也显示峰值。 这发生在每个小时10分钟。 我从服务器状态有以下信息 Server Version: Apache/2.2.15 (Unix) DAV/2 mod_wsgi/3.2 Python/2.6.6 Server Built: Feb 7 2012 09:50:15 Current Time: Sunday, 10-Jun-2012 21:44:29 EDT Restart Time: Sunday, 10-Jun-2012 19:44:51 EDT Parent Server Generation: 0 Server uptime: 1 hour 59 minutes 37 seconds Total accesses: 1088 – […]

Apache2:mod_wsgi和乘客不相处

我想在两台虚拟主机上运行一个ubuntu服务器上的apache2实例。 一个用于redmine(phusion乘客),另一个用于ReviewBoard(mod_wsgi)。 我还没有创build一个单一的服务器configuration,这将允许他们都可用,并且有一些好奇的事情发生。 我正在尝试获取www.domain.com/redmine和www.domain.com/reviews。 当我运行sudo service apache2 restart时,根据两个站点的初始化顺序, sudo service apache2 restart取决于我能够到达哪个站点。 例如,如果我在apache2.conf中: Include sites-enabled/reviews Include sites-enabled/redmine www.domain.com/reviews将是我可以得到的地方,但如果他们被颠倒了,我可以去www.domain.com/redmine 。 启用网站的configuration如下所示: #sites-enabled/redmine <VirtualHost *:80> ServerName redmine.ts.com # !!! Be sure to point DocumentRoot to 'public'! DocumentRoot /var/www/tracking <Directory /var/www/tracking/redmine> Order allow,deny Allow from all Options -MultiViews FollowSymLinks Indexes PassengerResolveSymlinksInDocumentRoot on RailsBaseURI /redmine </Directory> </VirtualHost> #sites-enabled/reviews <VirtualHost […]

在到达WSGI之前,Apache2返回404代理请求

我有一个在Apache2和mod_wsgi下运行的Django应用程序,不幸的是,很多请求试图使用服务器作为代理。 服务器正在响应确定404错误,但错误是由Django(WSGI)应用程序,这会导致高CPU使用率生成。 如果closures应用程序并让Apache直接处理响应(发送一个404),则CPU使用率将下降到接近0(mod_proxy未启用)。 有没有一种方法可以configurationApache,在请求遇到WSGI应用程序之前,直接响应这种请求并发生错误? 我已经看到,也许mod_security将是一个选项,但我想知道如果我没有它可以做到这一点。 编辑。 我会多解释一下。 在日志中,我尝试使用服务器作为Web代理(例如GET http://zzz.zzz/ HTTP / 1.1,其中zzz.zzz是外部域,而不是我的连接)的连接。 这个请求被传递到mod_wsgi然后返回一个404(根据我的Django应用程序)。 如果我禁用应用程序,因为mod_proxy被禁用,Apache直接返回错误。 我最终想要做的就是阻止Apache将请求传递给无效域的WSGI,也就是说,如果请求是代理请求,则直接返回错误而不执行WSGI应用程序。 EDIT2。 这里是apache2configuration,使用站点启用VirtualHosts文件(我已经删除电子邮件地址和更改IP为xxx,将服务器别名更改为sample.sample.xxx)。 我希望Apache能够拒绝任何不带sample.sample.xxx的错误请求,也就是说,只接受对服务器的相对请求,或者只对实际的ServerAlias进行完全限定。 默认: <VirtualHost *:80> ServerAdmin [email protected] ServerName XXXX ServerAlias XXXX DocumentRoot /var/www/default <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options FollowSymLinks AllowOverride None Order allow,deny allow from all </Directory> ErrorDocument 404 "404" ErrorDocument 403 "403" ErrorDocument […]

在python 2.7上安装centos6.3上的mod_wsgi时出错

在最初安装的yum install mod_wsgi ,我认为它是与Python 2.6链接 现在有什么办法可以把它和2.7连接起来 我尝试从源代码configuration,我得到这个错误 apxs -c -I/usr/local/include/python2.7 -DNDEBUG mod_wsgi.c -L/usr/local/lib -L/usr/local/lib/python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm /usr/lib64/apr-1/build/libtool –silent –mode=compile gcc -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector –param=ssp-buffer-size=4 -m64 -mtune=generic -Wformat-security -fno-strict-aliasing -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd -I/usr/include/apr-1 -I/usr/include/apr-1 -I/usr/local/include/python2.7 -DNDEBUG -c -o mod_wsgi.lo mod_wsgi.c && touch mod_wsgi.slo In file included […]

内核3.8,Apache2与WSGI:信息:任务apache2阻塞超过120秒

我们在Debian系统上将我们的内核从2.6.32升级到了3.8.7。 我们与NFS共享以获取Apache2的数据。 而Nginx只提供静态文件作为代理。 由于我们已经安装了内核3.8.7,所以负载平均值有时会增长(到40以上),并且在'/ var / log / messages'中发现错误。 这是常见的错误: Apr 17 06:07:44 node1 kernel: [116569.387483] INFO: task apache2:18604 blocked for more than 120 seconds. Apr 17 06:07:44 node1 kernel: [116569.387527] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Apr 17 06:07:44 node1 kernel: [116569.387598] apache2 D 0000000000000002 0 18604 17528 0x00000000 Apr 17 06:07:44 node1 […]