Articles of django

我怎样才能优化系统资源使用许多不同的gunicorn动力Django网站stream量低?

我的服务器是768MB RAM的Linode。 这里有大约8个由Nginx,Supervisor和Gunicorn提供支持的小型低stream量Django站点。 目前,每个站点都有自己的Linux用户帐户,该站点的文件位于用户的主目录中。 每个用户都有一个开发和生产主pipe程序,运行1到4名工人的Gunicorn。 我们是一家小型的咨询公司,在不久的将来,我们只会把越来越多的小型,低stream量的Django网站添加到服务器上。 当我看上面的时候,我有一堆Gunicorn进程在运行,RAM几乎完全用完了。 有一段时间,我们只有512MB的内存,几乎完全用完,但是当我们增加了更多的内存时,Gunicorn进程只占用了更多的内存。 有没有好的方法来优化这个服务器的尽可能多的低stream量(如1000个点击一个月)Django的网站尽可能? 我select了Apache上的Nginx设置,因为我读了它在系统资源上更好,但似乎目前的设置不是非常有效地使用资源。

我怎样才能防止后缀发送成千上万的电子邮件?

我有一个Django安装,configuration为发送错误时发送电子邮件pipe理员(我们五个)。 所有生成的邮件都被定向到postfix,然后被发送到邮件服务器进行分发。 不幸的是,我们在周末遇到了一个错误,发送了近50万封电子邮件。 据说,我想扼杀后缀发送电子邮件在减less速度。 显然,还有其他方法可以解决这个问题,但是我想从postfix开始,因为它感觉像是阻力最小的path。 我第一次尝试实现这个目标是将这些configuration参数添加到postfix / anvil: smtpd_client_message_rate_limit = 5 anvil_rate_time_limit = 60s 我写了一个简单的程序,每秒发送一封电子邮件,希望上面的参数每五秒发送一封电子邮件。 不幸的是,这不起作用,这使我在这里。 有关这个问题的任何意见,不胜感激。

在同一个Varnish服务器后面运行Drupal和Django站点的最好方法是什么?

我有一个运行Drupal和Apache的高stream量网站,在Varnish服务器负载平衡后面有五个Web服务器。 假设这个网站是example.com。 我在我的default.vcl中使用了五个后端和一个这样的导演: director balancer round-robin { { .backend = web1; } { .backend = web2; } { .backend = web3; } { .backend = web4; } { .backend = web5; } } 现在我正在开发一个新的Django项目,它将成为example.com/new-section上运行的这个站点的一个新的部分。 在检查文档后,我发现我可以做这样的事情: sub vcl_recv { if (req.url ~ "^/new-section/") { set req.backend = newbackend; } else { set req.backend = default; } […]

uWSGI&Django 1.4 – 错误的网关,没有错误

我很难让Django和uWSGI在Ubuntu(12)上玩得很好。 似乎wsgi正在加载,然后该应用程序立即崩溃。 没有一个uwsgi日志给我任何东西去。 我正在使用标准的Django 1.4 wsgi与下面的uwsgiconfiguration: [uwsgi] project = djangoproject base_dir = /home/www/mywebsite.com uid = www-data gid = www-data plugins = http,python processes = 4 harakiri = 60 reload-mercy = 8 cpu-affinity = 1 max-requests = 2000 limit-as = 512 reload-on-as = 256 reload-on-rss = 192 no-orphans = True vacuum = True master = True […]

在python 2.7上安装centos6.3上的mod_wsgi时出错

在最初安装的yum install mod_wsgi ,我认为它是与Python 2.6链接 现在有什么办法可以把它和2.7连接起来 我尝试从源代码configuration,我得到这个错误 apxs -c -I/usr/local/include/python2.7 -DNDEBUG mod_wsgi.c -L/usr/local/lib -L/usr/local/lib/python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm /usr/lib64/apr-1/build/libtool –silent –mode=compile gcc -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector –param=ssp-buffer-size=4 -m64 -mtune=generic -Wformat-security -fno-strict-aliasing -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd -I/usr/include/apr-1 -I/usr/include/apr-1 -I/usr/local/include/python2.7 -DNDEBUG -c -o mod_wsgi.lo mod_wsgi.c && touch mod_wsgi.slo In file included […]

如何将所有HTTPstream量redirect到HTTPS,以使用SSL证书在ELB后面的nginx / uWSGI后面运行的Django 1.4应用程序

我想知道如何把我的整个Django网站后面的HTTPS。 如果有人试图通过HTTP来,我希望该用户被redirect到HTTPS。 目前,Firefox给我的错误是“Firefox已经检测到服务器正在redirect这个地址的请求,永远不会完成”。 我的设置是: 1.一个带SSL证书的AWS负载均衡器(ELB)ELB有两个监听器: 负载均衡器端口80(HTTP)指向实例端口80(HTTP) 指向实例端口80(HTTP)的负载平衡器端口443(HTTPS) 2.运行nginx / uWSGI的ELB后面有一个EC2实例 nginxconfiguration server { listen 80; return 301 https://$host$request_uri; } server { listen 443 ssl; set $home /server/env.example.com; client_max_body_size 10m; keepalive_timeout 120; location / { uwsgi_pass uwsgi_main; include uwsgi_params; uwsgi_param SCRIPT_NAME ""; uwsgi_param UWSGI_CHDIR $home/project; uwsgi_param UWSGI_SCRIPT wsgi; uwsgi_param UWSGI_PYHOME $home; } } uwsgiconfiguration # file: […]

无法提供Django静态文件

我想服务Django的pipe理静态文件,但似乎没有工作,下面是我的nginxconfiguration: upstream django { server 127.0.0.1:8000; } server { listen 4321; server_name localhost; charset utf-8; access_log /var/log/nginx/local-access.log; error_log /var/log/nginx/local-error.log; client_max_body_size 75M; include /etc/nginx/mime.types; location /static/ { alias /home/vaibhav/TRAC/bright-coupons/brightCoupons/brightCouponsApp/static/; } location / { uwsgi_pass django; include /etc/nginx/uwsgi_params; } } 我不明白我的模板工作正常,但不是Djangopipe理面板…我已经使用python manage.py collectstatic命令,现在所有的Django静态文件都在我的应用程序的静态文件夹。 Nginx的访问日志: 127.0.0.1 – – [14/May/2013:16:44:24 +0530] "GET /bcadmin/brightCouponsApp/static/admin/css/base.css HTTP/1.1" 500 5 "http://localhost:4321/bcadmin/" "Mozilla/5.0 (X11; […]

Apache2服务器使用了大量的CPU

顶部的输出 Tasks: 68 total, 1 running, 67 sleeping, 0 stopped, 0 zombie Cpu(s): 96.0%us, 3.7%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st Mem: 3840492k total, 1175776k used, 2664716k free, 27248k buffers Swap: 0k total, 0k used, 0k free, 316212k cached 3202 www-data 20 0 796m 301m 4272 S 49.5 8.0 14:07.96 apache2 2769 www-data 20 0 […]

Nginx + Gunicorn + Django – nginx不允许使用静态文件

更新的代码 – 这仍然不工作。 Settings.py STATIC_ROOT = '/home/ubuntu/virtualenv/mysite/homelaunch/static/' STATIC_URL = '/static/' nginx conf :: / etc / nginx / sites-enabled / mysite server { server_name ec2-xxxx.compute-1.amazonaws.com; access_log /home/ubuntu/virtualenv/mysite/error/access.log; error_log /home/ubuntu/virtualenv/mysite/error/error.log warn; connection_pool_size 2048; location /static/ { #alias /home/ubuntu/virtualenv/mysite/homelaunch/static/; #alias /static/; root /home/ubuntu/virtualenv/mysite/homelaunch/; } location / { proxy_pass http://127.0.0.1:8001; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #proxy_set_header X-Forwarded-Host […]

Django没有使用uWSGI为pipe理页面findCSS文件

即使我遵循官方指示 ,当我使用uWSGI启动Djangotesting站点时,pipe理界面的CSS文件也不会被加载。 如果我打开CSS文件的URL,例如http://localhost:8443/static/admin/css/base.css ,我得到一个404错误。 我search了本地文件,我猜它的path是/usr/local/lib/python3.3/dist-packages/django/contrib/admin/static/admin/css/base.css ; 所以我也尝试以root身份运行uwsgi,但没有任何改变。 我没有问题使用python3 manage.py runserver 。 如果打开http://localhost:8000/static/admin/css/base.css ,则文件将在浏览器中加载,并将样式应用于pipe理页面。 这是我在bash中执行的命令: uwsgi –ini ~/.uwsgi/conf/django.ini –set-placeholder project_name=mysite –set-placeholder port=8443 这是django.ini的内容: [uwsgi] module = %(project_name).wsgi:application https = :%(port),/usr/local/nginx/conf/server.crt,/usr/local/nginx/conf/server.key,HIGH strict = true chdir = /home/marco/django-projects/%(project_name) env = DJANGO_SETTINGS_MODULE=%(project_name).settings socket = /home/marco/.uwsgi/%(project_name).socket pidfile = /home/marco/.uwsgi/%(project_name).pid daemonize = /home/marco/.uwsgi/%(project_name).log master = true enable-threads = true harakiri = […]