我使用FastCGI在nginx后面运行Django。 我发现,在发送给客户端的一些响应中,随机数据损坏发生在响应中间(中间可能是几百字节左右)。 在这一点上,我已经缩小到nginx的FastCGI处理程序或Django的FastCGI处理程序(即可能是一个漏洞的错误),因为这个问题从来没有发生,当我以独立(即runserver )模式运行Django服务器。 它只发生在FastCGI模式。 其他有趣的趋势: 它往往发生在更大的反应。 当客户端第一次login时,会发送一大堆1MB的数据块同步到服务器数据库。 在第一次同步之后,响应要小得多(通常每次几KB)。 腐败似乎总是发生在一开始发送的1MB块上。 当客户端通过LAN连接到服务器(即低延迟,高带宽连接)时,更经常发生这种情况。 这使得我认为在nginx或flup中存在某种竞争条件,并且由于数据速率的提高而加剧。 现在,我不得不通过在响应头中添加一个额外的SHA1摘要来解决这个问题,并且让客户端拒绝头部与主体校验和不匹配的响应,但是这是一种可怕的解决scheme。 有没有其他人经历过这样的事情,或者有任何的指示,以确定是否是错误的flup或nginx,所以我可以提交适当的团队错误? 在此先感谢您的帮助。 注意:我也在lighttpd + FastCGI + Django中发布了一个类似的bug,在这之后: https : //stackoverflow.com/questions/3714489/lighttpd-fastcgi-django-truncated-response-sent-to-client-due-to – 尽pipe这不是一回事(截断与腐败),但它开始看起来像常见的罪魁祸首是flup / Django,而不是Web服务器.. 编辑:我也应该注意我的环境是什么: Mac mini上的OSX 10.6.6 Python 2.6.1(系统) Django 1.3(官方tarball) flup 1.0.2(来自python卵上的flup网站) nginx + ssl 1.0.0(来自Macports) 编辑:为了响应Jerzyk的评论,组装响应的代码path看起来像(编辑为简洁): # This returns an objc NSData object, which is an array.array # when […]
我按照官方教程/ doc的说法为我的Django项目安装了Celery。 当我在命令行启动芹菜时,它可以正常工作,我可以看到它接收任务并执行它们。 但是,一旦一切正常,我决定跟随文件多一点,以保护芹菜,让它一直运行。 所以我尝试在Ubuntu系统上使用/ etc / default / celeryd脚本提供celeryd init脚本。 我相应地改变了这个值,并且它正确的启动,但是当它接收到一个任务时,日志会说: ERROR/MainProcess] Received unregistered task of type 'likes.tasks.test'. The message has been ignored and discarded. Did you remember to import the module containing this task? Or maybe you are using relative imports? Please see http://bit.ly/gLye1c for more information. 然后我得到了任务所要求的细节。 再一次,当我在命令行上启动芹菜而没有任何configuration时,这个任务完美地工作。 在这一点上会出现什么问题? 我使用虚拟环境,以防万一它会改变任何东西,但我也在configuration文件中指定它。
由于无法控制的原因,我们的网站托pipe了一个使用IIS服务器的托pipe服务提供商。 他们目前提供PHP和ASP,以及Python和Perl通过CGI脚本。 我想做一个重新devise,重新编写我们的网站,并希望从PHP更改为Python / Django设置。 托pipe服务提供商可以提供build议,但是很清楚:“我们并不真正了解Python是什么,或者它是如何工作的,但是如果能够向我们解释,我们将尽力为您设置任何您需要的东西” 。 不过,我可能知道如何在apache / mod_python的共享主机环境中设置Django,但是我不知道如何在IIS上设置Django,当然也不知道如何设置共享主机环境。 我GOOGLE了一下,但我发现大部分资源假设系统pipe理员1)知道Python / Django和2)使用专用的IIS托pipe他的网站。 有人可以解释我怎么能解释我的托pipe服务提供商的过程,或者给我指点好的,详细的资源,我可以转发到我的托pipe服务提供商? 请记住,运行主机的人可能知道关于IIS的“一切”,但不知道如何处理Python。
更新:我添加了一个修改后的问题后,下面两个答案。 你好, 如果你正在阅读,你可能对Apache的mod_proxy及其ProxyPass函数很熟悉。 像其他许多人一样,我有一个可以从内部networking外部访问的应用程序的问题,但是应用程序本身可以访问不同计算机上的其他内部应用程序,并且当您使用此设置进行远程访问时,情况会变得糟糕透顶。 所以,我的设置很简单,我有: 机器#1启用了远程访问,我通过主机名访问它,并且吐出运行在其上的PHP应用程序。 机器#2是一个运行Django的新应用程序,它使用了一个完全不同的后端(甚至authentication),它被托pipe在一个单独的机器上。 在我们的内部网中,我们通过一个简单的命名主机名来访问它,它主要链接到内部的192.168.0.101 ip。 我尝试使用ProxyPass来设置它,例如,传递给/ new将把它发送到新的应用程序: ProxyPass /新http://192.168.0.101/ 这种工作,它获取到其他应用程序的请求,但它打破了,因为我的Django应用程序想redirect到/ auth / login /,它立即无法识别。 如果我自己修改url为foo.net/new/auth/login我得到我的login页面,但是正如你所猜测的,在整个浏览过程中这样做是不方便的。 那么我怎样才能让ProxyPass按照我的意愿工作呢? 我是否需要对Apache做些什么,所以它总是写入/新的URL在其他应用程序之前,或者这是我应该在我的Django应用程序中修改? 任何提示和指针,以及将不胜感激。 谢谢你的时间
我正在试图按照这个教程来设置Ubuntu 16.04上的Django和nginx uWSGI 。 这一切工作正常,直到最后一步(哦,讽刺…),我试图执行此命令: sudo service uwsgi start 如果失败,出现以下错误: 无法启动uwsgi.service:找不到单位uwsgi.service。 其他人似乎也得到了类似的错误: 无法启动uwsgi.service:单位uwsgi.service未能加载:没有这样的文件或目录。 这个问题似乎与Ubuntu的版本有关。 虽然这个教程是针对Ubuntu 14.04的,但它似乎不适用于较新的版本,因为在版本15中,Ubuntu从upstart init守护进程切换到了systemd init守护进程 。 我怎样才能使用systemd来启动uWSGI,以便它与nginx和Django一起工作?
使用Apache工作台在AWS小实例(Ubuntu 10.04)上加载testingdjango 1.21 / Apache / mod_wsgiconfiguration在低并发请求时显示极高的CPU负载(使用正常运行时间和vmstat): ab -c 5 -n 1000 "my_url" …导致正常运行时间输出: 18:04:54 up 9 days, 16:54, 3 users, load average: 5.33, 2.45, 1.91 即使Apache的并发值为2,CPU也是100%。我正在同一个区域/区域中的另一个AWS实例运行Apache工作台。 什么是问题的想法,或者我应该如何继续debugging呢? 细节: 出于绝望,我安装了一个简单的“Hello World”视图(没有数据库调用等)的香草django项目/应用程序。 相同的结果。 所以我怀疑这是我的应用程序代码。 内存使用在负载testing期间看起来不错。 这是加载testing之前/期间/之后的一个vmstat输出: procs ———–memory———- —swap– —–io—- -system– —-cpu—- rb swpd free buff cache si so bi bo in cs us sy id […]
我有一个Django的应用程序,可以使用标准的开发环境在本地运行。 现在我想把它移到EC2进行生产。 django文档build议使用apache和mod_wsgi运行,并使用nginx加载静态文件。 我在Ec2机器上运行Ubuntu 12.04。 我的Django应用程序“ddt”包含一个ddt.wsgi的子目录“apache” import os, sys apache_configuration= os.path.dirname(__file__) project = os.path.dirname(apache_configuration) workspace = os.path.dirname(project) sys.path.append(workspace) sys.path.append('/usr/lib/python2.7/site-packages/django/') sys.path.append('/home/jeffrey/www/ddt/') os.environ['DJANGO_SETTINGS_MODULE'] = 'ddt.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler() 我从apt安装了mod_wsgi。 我的apache / httpd.conf包含 NameVirtualHost *:8080 WSGIScriptAlias / /home/jeffrey/www/ddt/apache/ddt.wsgi WSGIPythonPath /home/jeffrey/www/ddt <Directory /home/jeffrey/www/ddt/apache/> <Files ddt.wsgi> Order deny,allow Allow from all </Files> </Directory> 在apache2 / sites-enabled下 <VirtualHost *:8080> […]
amazon web services公司最近推出了一个免费的服务层,在那里你基本上可以免费获得AWS的服务,并运行微型网站和项目。 基本上它是免费的,只要你保持低于一定的带宽限制,磁盘存储等。 由于超越极限可能会很快变得相当昂贵(对于业余爱好者),为了尝试Ruby on Rails和/或Django,我希望能够在免费层上运行哪些AMI。
我曾尝试在Windows 8开发人员预览版的IIS 8下运行Django。 现在Windows 8的Consumer Preview已经不存在了,我想知道是否可以在IIS中获得有关设置Django的详细说明。 我怎么去做这个过程 – 我几乎不知道从哪里开始。 我需要一个特定的ISAPI模块吗?
我在Heroku日志中看不到日志条目(在INFO级别)。 这是我的configuration: LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'filters': { 'require_debug_false': { '()': 'django.utils.log.RequireDebugFalse', }, 'require_debug_true': { '()': 'django.utils.log.RequireDebugTrue', }, 'not_development_filter': { '()': NotDevelopmentFilter, }, }, 'handlers': { 'console':{ 'level': 'INFO', 'class': 'logging.StreamHandler', }, 'null': { 'class': 'django.utils.log.NullHandler', }, 'mail_admins': { 'level': 'ERROR', 'filters': ['not_development_filter'], 'class': 'django.utils.log.AdminEmailHandler', 'include_html': True, } }, 'loggers': { '': […]