我打算使用mod_wsgi守护进程模式下的mpm_worker或mpm_event 。 如何configurationWSGIDaemonProcess指令的进程和线程,以获得最佳的apache 2.4.9性能
我在这里敲我的头,似乎无法在任何地方find答案。 我的服务器正在运行Ubuntu 14.04。 我使用Apache和mod_wsgi运行几个Django站点今天更新后,网站将无法正常工作。 我可以看到,libapache2-mod-wsgi:amd64(3.4-4ubuntu2.1.14.04.1,3.4-4ubuntu2.1.14.04.2)是更新之一 这个错误出现在apache错误日志中 mod_wsgi (pid=6624): Failure to configure the daemon process correctly and process left in unspecified state. Restarting daemon process after delay. 虽然这个出现在一个特定的Django应用程序日志 Fatal Python error: PyEval_AcquireThread: NULL new thread state <…> Script timed out before returning headers: wsgi.py 我不记得我是否使用pip安装mod_wsgi。 任何指针都会很棒。
当我安装mod_wsgi后运行apachectl configtest出现以下错误信息: httpd: Syntax error on line 117 of /private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/mod_wsgi.so into server: dlopen(/usr/libexec/apache2/mod_wsgi.so, 10): Symbol not found: _PyEval_ReleaseLock\n Referenced from: /usr/libexec/apache2/mod_wsgi.so\n Expected in: dynamic lookup\n 我用python 2.7.8从源代码编译mod_wsgi 3.5。 Apache是2.2.11版本。 广泛的谷歌search没有出现类似的问题。 有可能apache试图使用python的系统版本,而不是我已经安装的版本(也是我用来编译mod_wsgi的版本)。 任何想法是什么导致这个错误,以及如何纠正?
作为一名Python开发人员,我对mod_wsgi的工作原理有了一些了解,也就是说,它会为每个请求启动一个新的Python进程。 这不是说一个新的httpd进程,而是一个运行类似于httpd的进程 python /path/to/my/wsgi.py <param> <param> 我对守护进程模式的理解是,如果process = 1(缺省值),则使用具有15个线程的单个进程来处理请求。 但是,请求服务时,httpd进程会发生什么? 这里更大的问题是,在我的日志中,我看到多达30个消耗3G内存的httpd进程。 这可以表明什么? 请求与永不终止的代码? apache borking一个请求,永远不会完成它? 编辑 我ps aux'd httpdfind约22个进程。 当我停下来的时候,大多数人都在等待,但是一直在不停地印刷着以下内容: select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout) wait4(-1, 0x7fff9d6990ec, WNOHANG|WSTOPPED, NULL) = 0 我看起来像SQL?
# yum –showduplicates list mod_wsgi | expand Loaded plugins: fastestmirror Determining fastest mirrors * base: mirror.cov.ukservers.com * epel: mirrors.coreix.net * extras: centos.serverspace.co.uk * updates: mirror.cov.ukservers.com Available Packages mod_wsgi.x86_64 3.2-7.el6 base 有没有人知道是否有一个在3.4版本中有mod_wsgi的包pipe理器? 我一直在试图让mod_wsgi为Python 2.7而不是默认的2.6工作,但我一直在麻烦做手动。 3.4版本里面必须有一个经理。
我有大约12个httpd进程运行RHEL aws框,没有人在浏览器中打开(共享的团队开发框)。 这些进程一起在开发盒上消耗了超过1.8GB的内存,而且我已经看到它在生产上达到了6GB。 每个进程消耗大约800 MB的ps aux。 我对他们中的一个做了一个调查,然后离开了一段时间,发现: <venv>/django/contrib/flatpages/templatetags/analytical 0x7fff37ef41a0) = -1 ENOENT (No such file or directory) <venv>/django/contrib/flatpages/templatetags/analytical.py, O_RDONLY) = -1 ENOENT (No such file or directory) <venv>/pagination/templatetags/expert_tags.py, O_RDONLY) = -1 ENOENT (No such file or directory) <venv>/django/templatetags/raven.py, O_RDONLY) = -1 ENOENT (No such file or directory) <vevn>/django_extensions/templatetags/raven.py O_RDONLY) = -1 ENOENT (No such file […]
我正在苦苦做一个新的Trac 1.0.3安装(在通过easy_install安装相同的问题之后,从源码安装)。 Debian 7.8 Apache 2.2.22 Python 2.7.3 Genshi 0.6 sqlite 3.7.13 WSGI 3.3 我在/var/trac创build了Trac环境, /var/trac /var/trac/cgi-bin保存了trac.wsgi 。 我已经更新了Apache … LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so和我的网站的conf … WSGIScriptAlias /trac /var/trac/cgi-bin/trac.wsgi <Directory /var/trac/cgi-bin> WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all </Directory> <Location /trac> Order deny,allow Allow from all </Location> 我的/var/trac/log/trac.log (这是空的)在trac.iniconfiguration… [logging] log_file = /var/trac/log/trac.log log_level = DEBUG log_type […]
我尝试在openshift上部署单个页面的应用程序。 在openshift所有的静态内容必须在wsgi /静态目录,但我显然想从我的静态index.html从根。 每个尝试在wsgi / dir中使用.htaccess来做到这一点似乎都不起作用。 这是正确的方式吗? 如果是的话,我该如何debugging呢? 是否有任何openshift htaccess的具体规则?
我有两个python应用程序,我想运行在同一台服务器上。 一个需要Python 2.7,另一个需要Python 3.3。 我使用httpd 2.4和python 2.7和3.3 SCL运行CentOS 6.6。 Python 2.7应用程序目前通过Apache进行部署。 我正在通过另一个端口上的flask dev服务器运行python 3.3应用程序,但希望在同一个apache实例中运行。 当我启动Apache时,它试图加载第二个mod_wsgi实例,它告诉我: AH01574: module wsgi_module is already loaded, skipping 所以我改变:LoadModule wsgi_module modules / mod_python33-wsgi.so到: LoadModule wsgi_module33 modules/mod_python33-wsgi.so 然后我找不到在/opt/rh/httpd24/root/etc/httpd/modules/mod_python33-wsgi.so文件中的API模块结构`wsgi_module33':/ opt / rh / httpd24 / root / etc / httpd / modules / mod_python33-wsgi.so:undefined symbol:wsgi_module33 这可能吗?
当我发布特定的SVGstring时,我在Apache + mod_wsgi中发生了一个奇怪的504错误。 后端应用程序是Python Flask,但它似乎并没有到达应用程序。 这是一个返回504错误的请求: curl 'https://some.domain.com/api/export/png' –data 'svg=%22%3E%28style' 这是另一个以200返回的结果: curl 'https://some.domain.com/api/export/png' –data 'svg=%22%3E%28styl' 不同之处在于我只从POST数据中删除了一个字符 SVG数据被裁减到可能产生错误的最小数据。 原始的SVGstring要大得多。 出现在apache错误日志中的错误是: [Tue Jun 09 14:27:26 2015] [error] [client 10.5.226.115] (104)Connection reset by peer: mod_wsgi (pid=19254): Unable to get bucket brigade for request., referer: https://some.domain.com/ [Tue Jun 09 14:27:26 2015] [error] [client 10.5.226.115] mod_wsgi (pid=19252): Exception occurred processing […]