我有基于django和芹菜的python服务器。 每次计算机重新启动,apache2启动,所以我的服务器工作,但我必须手动重启芹菜(去我的项目目录,并执行“python manage.py celeryd”)。 什么是正确的生产解决scheme? 我的意思是,有没有可能将芹菜作为守护进程启动? 这里http://github.com/ask/celery/tree/master/contrib/debian/init.d/我发现两个脚本,看起来应该在/etc/init.d/像apache2脚本启动apache2。 但是我把它们放到/etc/init.d/,因为我没有看到任何变化。
我试图得到一个工作主pipe/ gunicorn / djangostream浪汉设置。 我正在使用python-watchdog在发生代码更改时尝试重新启动gunicorn。 我正在使用gunicorn的以下pipe理员configuration: [program:someapp] environment=PYTHONPATH='/vagrant/libs/unmodified/django-error-capture-middleware/src:/vagrant:/home/vagrant/.virtualenvs/someapp/lib/python2.7/site-packages:/vagrant/wsgi',DJANGO_SETTINGS_MODULE=someapp.settings.vagrant command=/home/vagrant/.virtualenvs/someapp/bin/gunicorn –bind 0.0.0.0:80 –pid=/home/vagrant/.gunicorn.pid –preload –workers=1 –debug –log-level debug –error-logfile – –access-logfile – vagrant_wsgi:application user=root group=root redirect_stderr=true stdout_logfile = /vagrant/logs/gunicorn.log stderr_logfile = /vagrant/logs/gunicorn.log stdout_logfile_maxbytes=0 autostart=true autorestart=true stdout_events_enabled=true loglevel=debug 这一切工作得很好。 看门狗也工作正常。 但是,当我使用看门狗运行一个kill -HUP [pidofgunicorn] ,有时它不会实际上完全重新加载。 有时候django甚至会报告,当模块在之前的时候就会丢失(我根本没有修改过sys.path)。 如果我使用看门狗运行supervisorctl restart someapp ,它工作正常。 但是,这需要更长的时间,特别是在virtualbox实例上。 有什么我可以做得到gunicorn优雅重新加载,实际上看到所作的变化?
我已经遵循了从django wiki( https://code.djangoproject.com/wiki/DjangoAndNginx )用nginx设置django的指令,并按如下所示进行了nginx设置(几个名称更改以适应我的设置)。 user nginx nginx; worker_processes 2; error_log /var/log/nginx/error_log info; events { worker_connections 1024; use epoll; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" ' '"$gzip_ratio"'; client_header_timeout 10m; client_body_timeout 10m; send_timeout 10m; connection_pool_size 256; client_header_buffer_size 1k; large_client_header_buffers 4 2k; request_pool_size 4k; […]
我有一个自定义的Django应用程序,大约每5,000个请求就会变得不响应。 在Apache日志中,我看到以下内容: Apr 13 11:45:07 www3 apache2[27590]: **successful view render here** … Apr 13 11:47:11 www3 apache2[24032]: [error] server is within MinSpareThreads of MaxClients, consider raising the MaxClients setting Apr 13 11:47:43 www3 apache2[24032]: [error] server reached MaxClients setting, consider raising the MaxClients setting … Apr 13 11:50:34 www3 apache2[27617]: [error] [client 10.177.0.204] Script timed […]
在Ubuntu(以及Debian和其他发行版)中,有一些Apache软件包(mpm-event,mpm-prefork,mpm-worker)。 哪一个最适合在单个CPU服务器上托pipeDjango mod_wsgi应用程序? 哪个包是OpenVZ容器的最佳select?
我想在我的本地ubuntu机器上使用django应用程序。 然而,该网站不工作,我的/var/log/apache2/errors.log充满了这样的消息: ImportError: No module named site 我的/var/log/apache2/error.log (今天)看起来像这样: $ cat error.log | uniq -c 1 [Wed Jun 29 09:37:37 2011] [notice] Apache/2.2.17 (Ubuntu) mod_wsgi/3.3 Python/2.7.1+ configured — resuming normal operations 12966 ImportError: No module named site 这是通知,它启动时,我打开我的机器,其次是12,966行都说no module named site消息 注意缺lessdate时间字段。 即使不进入网站(即使不进行networking请求),也会重复这些错误。 在浏览器中访问网站时,它只是挂起,仿佛在等待大量下载。 设置 Apache模块 我正在使用一个python 2.5 virtualenv与很多包(包括Django的1.1)与点安装。 我有mod_wsgi加载: $ ls -l /etc/apache2/mods-enabled/wsgi* lrwxrwxrwx […]
有没有一种方法可以将用户名或用户标识存储在nginx日志中。 我试图在log_format指令中插入$ remote_user,但似乎不起作用。
我已经为我们的Django驱动的应用程序整合了一个集成服务器。 一些function仍然是实验性的,并导致过长的请求。 我现在的performance还不错,但我需要能够整合。 无论何时我们使用导致长时间请求的function,应用程序都会挂起(如预期的那样),然后在一分半钟后返回“502 – 错误的网关”。 应用程序的其余部分工作正常。 我检查了gunicorn日志,每当发生这种情况,我得到一条线 2012-01-20 17:30:13 [23128] [DEBUG] GET /results/ 2012-01-20 17:30:43 [23125] [ERROR] WORKER TIMEOUT (pid:23128) Traceback (most recent call last): File "/home/demo/python_envs/frontend/lib/python2.6/site-packages/gunicorn/app/base.py", line 111, in run os.setpgrp() OSError: [Errno 1] Operation not permitted 然而,这发生在实际的工人超时之前,我已经设置为10分钟,以确保。 这是运行gunicorn的暴发剧本的一部分。 description "…" start on runlevel [2345] stop on runlevel [!2345] #Send KILL after 5 […]
我有一个Django的设置是在Ubuntu 14.04 LTS上使用Django 1.6.7和Postgres 9.3。 在任何时候,该站点都可以同时连接大约250个PostgreSQL数据库,该数据库是2.5GHz的四核至强E5-2670处理器,并具有16GB的内存。 特定机器的全天平均负载约为20到30。 偶尔我会收到有关连接超时到数据库的哨兵电子邮件,并且我认为启用某种连接池可以帮助缓解这个问题,并且稍微降低数据库的负载。 由于我们使用的是Django 1.6,所以我们可以使用内置的池。 但是,当我将CONN_MAX_AGE设置为10秒或60秒时,几乎立即同时连接的数量跳转到最大允许设置(这是我们通常看到的大约两倍),并且连接开始被拒绝。 所以,出于什么原因,连接是持续的,但是它们不被重用。 这可能是什么原因? PS。 我们也使用gunicorn和–worker-class = eventlet。 也许这是我们的灾难的来源?
我试图部署一个Django应用程序,但是我碰到了一堵砖墙。 在Debian上(最新),我已经运行了这些命令: apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-python python-django 我已经尝试在Apache 2configuration文件中手动添加模块,但说实话我完全失去了。 这与我多年前使用的Apache版本1完全不同。 Syntax error on line 7 of /etc/apache2/sites-enabled/000-default: Invalid command 'PythonHandler', perhaps misspelled or defined by a module not included in the server configuration 我已将以下内容添加到标记之间的sites-available/default文件中。 <Location "/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE hellodjango1.settings PythonDebug Off </Location> 以下是我迄今使用的教程,没有太多的运气: Django | 如何用Apache和mod_python […]