我使用的是Apache 2.2的python 2.7.3(32位)的WSGI 3.3。 我从http://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-win32-ap22py27-3.3.so获得了二进制WSGI。 我一直在试图部署一个应用程序,但继续接收ImportError:no模块名为_socket。 我已经包含了我的wsgi和错误日志。 APACHEconfiguration: #LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule wsgi_module modules/mod_wsgi.so <Directory C:/Users/xxxxd/Documents/cahd> AllowOverride None Options None Order deny,allow Allow from all </Directory> WSGIScriptAlias / C:/Users/xxxxd/Documents/cahd/cahd/django.wsgi import os,sys sys.path.append('C:/Users/xxxxd/Documents) sys.path.append('C:/Users/xxxxd/Documents/cahd/') os.environ['DJANGO_SETTINGS_MODULE'] = 'cahd.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler() 错误是: [Mon Nov 19 09:44:17 2012] [error] [client 127.0.0.1] Traceback (most recent call last): […]
我在apache2 httpd 2.2.12上运行mod_wsgi和Django。 我做了很多os.system()和subprocess.Popen()调用,并想知道:是否有任何选项/指令来configurationapache2,以便preforksubprocessclosures所有文件描述符,除了用于与主prefork过程? 如果我收到启动进程的请求,然后apache重新启动,就会发现有些apache启动的进程inheritance了apache描述符(即端口80),从而导致apache在重新启动时遇到绑定问题。 我正在寻找一种方法来closures所有未被使用的描述符。 也许在孩子中打开端口80描述符的能力是一个允许任何人接pipe主进程崩溃的function吗?
我试图在我自己的服务器上部署一个readthedocs实例。 推荐的部署方式是使用Gunicorn + nginx和postgres。 因为基本上没有关于如何执行此操作的文档(除了他们的fabfiles,当然只能在他们的服务器上运行),我一直在尝试手动设置自己的服务器。 这是我的nginx.conf : server { listen 80 default; server_name mysite.com; access_log /var/log/nginx/mysite.access.log; error_log /var/log/nginx/mysite.error.log; location /favicon.ico { root /home/mysite/Code/checkout/readthedocs.org/media/images; break; } location robots.txt { root /home/mysite/Code/checkout/readthedocs.org/media; break; } location /static/ { alias /home/mysite/Code/checkout/readthedocs.org/media/; expires 30d; break; } location /media/ { alias /home/mysite/Code/checkout/readthedocs.org/media/; expires 30d; break; } location / { proxy_pass_header Server; […]
我在apache2上运行我的django应用程序(使用mpm prefork)和一个mysql数据库。 它工作正常,除了多个用户使用它,每个用户需要大约40-45米RES。 httpd.conf中: WSGIScriptAlias / /home/myproject/apache/django.wsgi Alias /blog /var/www/blog/ Alias /maintain_wp_database/phpmyadmin_secure /usr/share/phpmyadmin django_wsgi: import os import sys os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler() path2 = '/home' if path2 not in sys.path: sys.path.append(path2) path = '/home/myproject' if path not in sys.path: sys.path.append(path) configuration文件: <VirtualHost *:80> ServerName myproject.com ServerAlias www.myproject.com # RewriteEngine on RewriteCond […]
我有一个安装了Python 2.7.2的共享主机帐户。 我做了本地安装的Django的1.4( python setup.py install –user ),一切工作正常。 我决定升级到服务器上的Django 1.5,因为我用Django 1.5在本地testing了应用程序,并且一切正常。 但是,运行升级( python setup.py install –user ,与上次相同)后,服务器开始引发HTTP 500错误。 Apache错误日志的快速检查显示: [Fri Jul 12 00:14:01 2013] [error] [client 127.0.0.1] ImproperlyConfigured: Error importing middleware django.contrib.auth.middleware: "cannot import name _doctest" 任何想法可能会导致这一点? 这个错误似乎表明auth中间件组件有问题 – 它试图加载一个不存在的模块( _doctest )(我可以用import _doctest来确认)。 与此同时,我立即恢复到Django 1.4,一切都恢复正常。
运行我的Django应用程序时,出现错误:当我发出超过7800字节的请求时,我看到gunicorn出现以下错误: "Error opening file for reading: Permission denied". 然后它丢弃请求,并且nginx得到“连接重置由同辈”错误。 如果我运行Django开发服务器,这不会发生。 奇怪的是,如果我向一个无效的URL发出请求,无论发布什么内容长度,我都会得到标准的Djangodebugging网页。 因此,似乎是gunicorn如何处理Django在处理有效的查看URL请求时正在做的事情。 这是在Ubuntu 12.04上运行。 我已经尝试运行Gunicorn作为根,它仍然发生。 我在进一步的debugging方面有点不知所措。 我试着设置tmp_upload_dir到一个目录将完全权限incase这是一个问题,但没有运气。 任何build议真的会被赞赏。
我有一个仓库,可以部署在两种模式:一个是前端的Web应用程序,而另一个是数据操纵过程,24×7不间断运行。 该应用程序在Django上运行并连接到Postgres数据库。 由于架构的原因,我不会去,我想部署应用程序在前端模式作为一个Heroku应用程序,并部署相同的应用程序(即相同的git回购)在数据代理模式,作为另一个Heroku应用程序。 这两个应用程序将共享相同的Postgres连接string,因此数据代理将提供前端应用程序。 是否有可能在一个回购协议中维护两个独立的Procfiles? 这将导致3个适当的dynos以前端模式启动,并且将在另一个模式中完全启动另一个进程。
所以我使用Django运行一个网站,有时我通过在python中产生一个subprocess来调用位于服务器上的脚本。 当看着“顶部”的进程,我看到这些在用户“www-data”下调用。 因为我希望这个服务器充当计算服务器, 所以我希望能够改变正在运行的进程的好处,尤其是通过给予它们更高的优先级(负面的好)。 不幸的是,这似乎只允许根。 我已经尝试添加www数据到我的sudoers文件与所有,并将其添加到sudo和pipe理组,但这些似乎没有工作。 另外,我还有一个普遍的问题。 如果我的进程不是最大化的CPU将改变的好,即使做任何事情,如果我想能够运行“更快”?
我试图寻找一个这样的解决scheme,但不能find任何文档/提示我的具体设置。 我的设置: 后端服务器:ngnix:virtualenv中运行gunicorn / python / django的2个不同网站(2个顶级域名)后端服务器硬件(VPS)2gb ram,8个CPU 数据库服务器:postgresql – pg_bouncer 后端服务器硬件(VPS)1GB RAM,8个CPU 清漆服务器:只运行清漆 Varnishserver硬件(VPS)1GB内存,8个CPU 我试图build立一个清漆服务器来处理罕见的stream量高峰(20 000个唯一请求/秒)当电视节目提到其中一个网站时,就会发生峰值。 我需要做些什么,使清漆服务器caching我的后端服务器上的两个网站/域? 我的/etc/varnish/default.vcl: backend django_backend { .host = "local.backendserver.com"; .port = "8080"; } 我的/usr/local/nginx/site-avaible/domain1.com upstream gunicorn_domain1 { server unix:/home/<USER>/.virtualenvs/<DOMAIN1>/<APP1>/run/gunicorn.sock fail_timeout=0; } server { listen 80; listen 8080; server_name domain1.com; rewrite ^ http://www.domains.com$request_uri? permanent; } server { listen 80 default_server; […]
我已经在Django + gunicorn + virtualenv + Supervisord环境下成功运行了2个django项目(与Python 2.7一样的virtualenv)。 但现在我试图在Python 3.2.3中运行另一个项目,所以我创build了另一个virtualenv。 但现在,当我尝试启动django服务器与supervisorctl命令它给我mein'exception终止'错误。 但是在错误日志中完成跟踪错误是这样的: Error: class uri 'simple' invalid or not found: [Traceback (most recent call last): File "/home/ubuntu/.virtualenvs/django16/lib/python3.2/site-packages/gunicorn/util.py", line 125, in load_class section, uri) File "/home/ubuntu/.virtualenvs/django16/lib/python3.2/site-packages/pkg_resources.py", line 378, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "/home/ubuntu/.virtualenvs/django16/lib/python3.2/site-packages/pkg_resources.py", line 371, in get_distribution if isinstance(dist,Requirement): dist = get_provider(dist) File "/home/ubuntu/.virtualenvs/django16/lib/python3.2/site-packages/pkg_resources.py", […]