Articles of mod wsgi

django项目的apache + mod_wsgiconfiguration在四核上

我经常在nginx + apache2 + mod_wsgi + memcached(+ postgresql)上使用“典型”的django设置进行实验(阅读文档以及SO和SF上的一些问题,参见注释) 由于我仍然不满意的行为(绝对是因为我的一些错误configuration),我想知道这些假设是什么样子的好configuration: 四核至强2.8GHz 8演出记忆 几个django项目(与此有什么特别的关系?) 这些摘录形成我目前的confs: 编辑:我已经添加了更多的东西,使完成,但遵循格雷厄姆的build议,我将在wsgi邮件列表 apache 2(> apache2 -v) Server version: Apache/2.2.12 (Ubuntu) Server built: Nov 18 2010 21:16:51 Server's Module Magic Number: 20051115:23 Server loaded: APR 1.3.8, APR-Util 1.3.9 Compiled using: APR 1.3.8, APR-Util 1.3.9 Architecture: 64-bit Server MPM: Worker threaded: yes (fixed thread count) […]

Apache,mod_wsgi,Django错误,当SSH服务器没有SSH'D

我遇到了一些奇怪的错误,我已经通过了这一点。 我有一个Ubuntu服务器设置与Apache + mod_wsgi + Django。 当我SSH进入服务器,我可以从另一台机器上的浏览器访问网站,一切都看起来精彩。 当我没有通过SSH进入时,我的浏览器上出现404 Not Found,这是我的Apache日志中的错误: [Wed Apr 18 10:15:02 2012] [error] [client 。 。 。 ]目标WSGI脚本未find或无法统计:/ home / zen / kiosk (这个错误最让我困扰的是,目标WSGI脚本不是我在apacheconfiguration文件中列出的完整path) 版本: Ubuntu 10.10 64位 Apache 2.2.16 Python 2.6.6 Django 1.3.1 mod_wsgi 3.2 Apacheconfiguration: Alias /static/ /home/zen/kiosk/static/ User zen <Directory /home/zen/kiosk/static> Order deny,allow Allow from all </Directory> WSGIScriptAlias / […]

位置指令覆盖mod_wsgi脚本别名安装

所以我受阻 我有一个使用Django的Web应用程序,我使用mod_wsgi将其与Apache整合。 但是,另一个人在代理另一台服务器的同一台机器上有指令。 Apache的configuration大致是: 我的应用程序 WSGIScriptAlias /stuff /foo/foo/wsgi.py WSGIPythonPath /foo <Directory /foo/foo> <Files wsgi.py> Order deny,allow Allow from all </Files> </Directory> 他的应用程序 <Location "/"> Order Allow,Deny AllowFromAll ProxyPass myotherserver ProxyPassReverse myotherserver </Location> 不幸的是,他的位置指令覆盖了我的脚本指令,并且所有我对http / www.bar.com / stuff的请求最终都不经过wsgi脚本就被转发到http://www.myotherserver.com/stuff 。 我如何向django提出请求/直接提交给Django而不是代理通行证,而不会搞乱他的代码或在另一个服务器上拆分他的实现? 我试过了 RewriteEngine on RewriteCond %{REQUEST_URI} ^!/stuff RewriteRule ^.*$ /bat/$1 [NC,PT] <Location "/bat"> Order Allow,Deny AllowFromAll ProxyPass […]

在Python / mod_wsgi / apache应用程序中执行matrix乘法的原因

我正在使用Python 2.7,它的bottle微型框架和apache(通过mod_wsgi)构build一个web应用程序。 这个应用程序有一些REST的端点,其中一个导致浏览器连接错误(Firefox显示“连接已重置”,而Opera显示“由远程服务器closures连接”)。 我一直在试图debugging,因为服务最近工作,我无法得到在Python中出现的错误。 所以,我希望如果我通过一些具体细节,有人可以build议下一步,因为我卡住了… 我已经将违规的代码行跟踪到两个numpy.matrixlib.defmatrix.matrix对象之间的matrix乘法 这段代码在本地工作得很好,并且在通过Python shell调用function时在服务器上工作。 只有在通过mod_wsgi调用代码时才会暴露问题 该问题似乎与内存有关。 在debugging中,我使用假数据进行了testing,以删除所使用的底层数据库的任何依赖关系。 这是什么工作,什么不工作: Works —– a = np.asmatrix(np.arange(140*30).reshape((140,30))) b = np.asmatrix(np.arange(30).reshape((30,1))) c = a * b a = np.asmatrix(np.ones(140*30, dtype=np.float16).reshape((140,30))) b = np.asmatrix(np.ones(30, dtype=np.float16).reshape((30,1))) c = a * b Fails —– a = np.asmatrix(np.ones(140*30, dtype=my_type).reshape((140,30))) b = np.asmatrix(np.ones(30, dtype=my_type).reshape((30,1))) c = a * b where my_type […]

当apache重新启动时,mod-wsgi会自动启动吗?

我正在阅读这里: https : //code.google.com/p/modwsgi/wiki/ReloadingSourceCode 我们有一个托pipe在大量负载均衡服务器上的python应用程序,有时需要很长时间才能将请求放入负载平衡器中优先级较低的服务器。 这意味着在部署之后,我们可能需要很长的等待时间(同时服务器的wsgi守护进程已经启动)。 当我们实际部署时,我有一个修复,但我们也有服务器arrays上的自动apache(优雅)重新启动。 重启apache跟触摸我的wsgi文件是一样的吗? wsgi是否等待请求进入特定的守护进程进行编译和启动,或者在apache重新启动时自动加载?

mod_wsgi,.htaccess和rewriterule

我正在通过mod_wsgi在同一个apache实例上运行几个django项目,每个站点都configuration了虚拟主机,请参阅这里的httpd.conf。 对于我想使用静态caching( staticgenerator )的站点之一,所以我build立了一个.htaccess文件的目录,其中包含: RequestHeader unset X-Forwarded-Host RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}/index.html !-f RewriteRule ^(.*) http://127.0.0.1:3456/$1 [P] 其中3456是服务器上的django端口。 使用这个重写规则,即使文件或目录存在,请求总是被转发到mod_wsgi处理程序,并且如果文件index.html存在,请求显示为request-path/index.html 。 我尝试了另一个设置: RequestHeader unset X-Forwarded-Host RewriteEngine on RewriteBase / RewriteCond $1 !-d RewriteCond $1index.html !-f RewriteRule ^(.*) http://127.0.0.1:3456/$1 [P] 但得到了几乎相同的结果。 所有请求都被传送到mod_wsgi处理程序,但请求path现在是原始的。 把它们加起来: 什么是在这里使用正确的RewriteCond? 你如何将请求传输到mod_wsgi处理程序? 这是正确的方式吗? 如果不是这样做,那么如何在目录中存在静态文件时,如何从apache / mode_wsgi提供静态文件? 谢谢你的帮助。

如何在Django + Postgres中debugging慢查询

我从Django的数据库查询开始需要1-2秒,我无法弄清楚为什么。 不要太大的网站,每秒约1-2个请求(打Django;静态文件只是由nginx提供)。 让我困惑的是,我可以使用debugging模式复制Django shell中的缓慢。 但是,当我在sql提示符下发出完全相同的查询时,它们很快。 查询返回大约需要一秒钟,但是当我检查connection.queries时,它报告的时间低于10毫秒。 下面是一个例子(来自Django shell): >>> p = PlayerData.objects.get(uid="100000521952372") >>> a = time.time(); p.save(); print time.time() – a 1.96812295914 >>> for d in connection.queries: print d["time"] … 0.002 0.000 0.000 我怎样才能找出这额外的时间在哪里? 我在守护进程模式下使用Apache + mod_wsgi,但是这也只发生在django shell中,所以我认为它不是与apache相关的。

django mod_wsgi内存问题

我有一个VPS服务器上的Django应用程序(128MB RAM)当我用python manage.py runserver启动它,它的工作原理是完美的,但如果我尝试通过Apache / mod_wsgi使用它,很快就会导致主要的放缓(点击几下随机链接在我的网页上),似乎耗尽内存。 这甚至发生在“hello world”应用程序中。 但它有点奇怪,因为它运行良好wit. manage.py runserver任何想法? /var/log/apache2/error.log —————————– [Wed Feb 10 00:00:40 2010] [error] [client 65.55.37.202] File does not exist: /var/www/robots.txt [Wed Feb 10 00:01:22 2010] [error] [client 65.55.37.202] File does not exist: /var/www/file [Wed Feb 10 00:02:32 2010] [warn] child process 2023 still did not exit, sending a SIGTERM […]

如何检查mod_wsgl是否正确安装在apache中

我一直在试图安装mod_wsgl和Django,但我没有成功。 我正在考虑一步一步来。 把django放在一边如何确保我已经正确安装了mod_wsgl,以便我的python脚本可以从网站运行 然后我会考虑Django 我只想在浏览器中使用python显示你好 我在哪里可以放置我的hello.py,我怎么检查,看看是否mod_wsgl insatlled正确

在Django的mod_wsgi中设置环境variables

我在Apache / mod_wsgi下的RHEL实例上运行Django,并且在为Python进程设置一些环境variables时遇到了问题。 所有组件(Apache,Python,mod_wsgi,外部库)都是从源码构build的,而不是从仓库安装的。 具体问题是对Oracle支持的支持。 我能够连接到Oracle实例没有问题,如果我自己启动Python时在命令行上设置ORACLE_HOME和LD_LIBRARY_PATH ,但我似乎无法将这些variables传递给WSGI进程。 我在Apache日志中得到的具体错误消息是: ImproperlyConfigured: Error loading cx_Oracle module: libclntsh.so.11.1: cannot open shared object file: No such file or 目录 我已经尝试在VirtualHost(使用SetEnv ),Apache的envvars文件,apache用户的.bashrc文件和.wsgi文件(使用os.environ['ORACLE_HOME']='…' )设置variables,所有没有效果。 在前三种情况下,这些variables似乎对Python没有任何作用 – 打印os.environ['ORACLE_HOME']表示没有设置值。 我也尝试从LD_RUN_PATH evn var set的源代码重buildmod_wsgi.so,根据这里的build议: http ://groups.google.com/group/modwsgi/browse_thread/thread/91dfa97330dfca2/474f818304d741d4但是,这也是无效的。 我错过了什么? 我怎样才能让这些环境成功通过? 提前致谢!