Articles of django

与Nginx,Gunicorn和Django的静态文件权限

我试图设置一个运行Django的Gunicorn WSGI服务器。 设置似乎运行,除了我有一个权限问题。 我已经设置了别名到/ media和一个/静态目录来提供静态内容,但是除非文件被nginx用户所有,否则会产生一个403错误。 由Gunicorn用户上传的文件显然将由该特定用户拥有,这将导致问题。 我可以将nginx用户添加到gunicorn用户组,但是我不想给这些文件赋予nginx一揽子权限。 什么是通过Gunicorn / Wsgi / Django上传或生成文件的build议方法,但允许nginx服务他们没有增加安全问题。 提前致谢,

Python线程和uWSGI Harakiri

我有一个使用nginx,uWSGI和Django构build的API的web应用程序。 最近我在一个特定的API调用中看到了很多harakiris,它会进行一些快速处理,然后产生一些线程来处理一些长时间运行的函数。 主线程然后返回并且工作线程将其结果存储在caching中并退出。 在线程产生之后,它们之间没有交互。 我的uWSGI在20秒内被设置为harakiri。 这应该是足够的时间让主线程完成并返回(平均大约2-3秒)。 uWSGI是否有可能因为我的工作线程太长而返回? 如果是这样,我可以解决这个问题,而不是multithreading在python中的多处理? 谢谢!

防止Gunicorn在非活动期之后缓慢加载?

我的Django项目运行在gunicorn上 。 有时加载一个页面(和oracle程序调用相关)需要很多时间。 服务器在几分钟内保持非活动状态时,会发生90/100。 我怎样才能解决这个问题? wsgi.py import os import site import sys from whitenoise.django import DjangoWhiteNoise # Add the site-packages of the chosen virtualenv to work with site.addsitedir('/new_esmart/esmart_env/lib/python2.7/site-packages') # Add the app's directory to the PYTHONPATH sys.path.append('/new_esmart/esmart2') sys.path.append('/new_esmart/esmart2/esmart2') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "esmart2.settings") # Activate your virtual env activate_env = os.path.expanduser("/new_esmart/esmart_env/bin/activate_this.py") execfile(activate_env, dict(__file__=activate_env)) from django.core.wsgi import get_wsgi_application application […]

运行fastcgi-> php的博客子文件夹,而其余的网站是fastcgi-> Django

sorting一个奇怪的问题,但应该很容易解决。 我正在开发一个Django网站,客户也想要一个WordPress的博客。 因为我们在枪下,也有其他项目,所以我们没有时间去build立一个好的django博客,所以我们给他们一个子文件夹的Wordpress。 我有很多使用Nginx的经验,但从来没有做过这样的事情,我也不是非常有才华的正则expression式。 结构如下: blog (the wordpress blog) contact __init__.py manage.py settings.py static (all my static media, htdocs directory) templates urls.py wsgi.py 这是迄今为止超级轻量级​​,只有一个单一的应用程序(联系应用程序)。 我想要域名/博客点击/博客/文件夹和静态媒体对待像静态媒体和PHP文件,如PHP文件代理他们到我的fastcgi进程。 当然,我希望其他所有的东西都能和Django一起工作,进入我的python fastcgi过程。 为了logging,除了这个nginxconfiguration外,一切正常。 我所有的fcgi过程都很好。 这是我的nginxconfiguration: # David Simons Website server { listen 80; server_name ********; root /usr/local/simons/static; index index.html index.php; location / { fastcgi_pass 127.0.0.1:3033; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_param REQUEST_METHOD […]

优雅地重新启动Django芹菜实例

我想知道重新启动Celery的最佳方式是什么,而不会丢失任何任务。 我目前正在使用celery提供的init.d /脚本将其作为守护进程运行 – 一切正常。 尽pipe如此,我还是需要重新启动它(我认为?)才能看到代码更新。 我担心的是,如果有人上传照片,我们想在5秒钟左右的时间内对其进行处理,芹菜重新启动,任务将永远丢失,我们将开始看到奇怪的问题。 有没有build议的方式来重新加载芹菜代码,同时没有丢失任何交易? 谢谢, 菲尔

用Django调度任务

我有一个Django网站,我想定期运行一段Python代码。 什么将是一个很好的方法来做到这一点? 我知道我可以cron ,但我更喜欢Django的解决scheme。 我知道有一个叫做celery的模块,它应该这样做,但是它需要安装RabbitMQ并将其configuration为与Apache交互,这是另一个需要维护的事情,我宁愿避免这种情况。 有什么build议么?

Django VPSconfiguration

我正在寻找在我的VPS上运行一些Django站点,nginx作为它的前端。 我一直有mod_python和Apache的一些问题,该网站只是开始错误,每当stream量开始拿起,因为它只是使用这么多的RAM为每个请求。 所以我做了一些研究,发现mod_python真的不是我最好的select,小VPS。 我的设置有nginx服务静态文件(javascript,css,图像),并使用memcached通过cachingApache“制作”的页面来大幅减less对Apache后端的请求,但是这仍然在运行mod_python ,而且昨天我还有一些人说他们无缘无故地得到了500个错误。 我现在要做的就是使用FastCGI来运行Django,我已经读过它可以用更less的内存来处理更高的stream量,但是configuration对于我来说有点奇怪; 我根本就不是专家。 我正在看的主要是这些选项: maxspare=NUMBER max number of spare processes / threads minspare=NUMBER min number of spare processes / threads maxchildren=NUMBER hard limit number of processes / threads method=IMPL prefork or threaded (default prefork) 任何帮助确定我应该设置这些将不胜感激。 我也想知道如何/如果这些提到的进程都与nginx工作进程有关。 服务器托pipe着4个网站,通常每天处理几千个点击,但它们都倾向于与大多数stream量同时发生,这就是问题出现的时间。 此外,我读了一些关于使用Tornado作为Django的WSGI服务器的地方…这可能是一个更好的解决scheme吗? 谢谢!

在uwsgi中运行django的Nginx 502坏的网关

我尝试重新启动生产项目,并停止工作。 这是一个django == 1.5.1和django-cms == 2.4.1的项目。 我重新启动,因为我已经从django == 1.4.1项目更新到django == 1.5.1,但只要我知道它不会改变wsgi.ini中的任何东西。 当我第一次重新加载这个项目的时候,它正在发生一个500错误。 然后我决定删除我的/tmp/zecaffe.sock重新创build它,然后重新启动项目,现在当我看到里面我的error_zecaffe.log它显示这个错误: 2013/05/03 16:16:35 [crit] 32378#0: *207 connect() to unix:///tmp/zecaffe.sock failed (2: No such file or directory) while connecting to upstream, client: 189.75.17.67, server: zecaffe.infalms.com.br, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:///tmp/zecaffe.sock:", host: "zecaffe.infalms.com.br" 2013/05/03 16:16:36 [crit] 32378#0: *207 connect() to unix:///tmp/zecaffe.sock failed (2: No […]

主pipe进程以退出状态1退出; 没有预料到'

我试图在主pipe中运行一个gunicorn_django进程,但它总是立即退出,出现这个错误: INFO exited: my_app (exit status 1; not expected) INFO received SIGCLD indicating a child quit INFO gave up: my_app entered FATAL state, too many start retries too quickly 我的服务器脚本如下所示: #!/bin/bash set -e LOGFILE=/var/log/gunicorn/my_app.log LOGDIR=$(dirname $LOGFILE) NUM_WORKERS=3 USER=my-www-user GROUP=my-www-user cd /home/my-www-user/my_app source /home/my-www-user/.virtualenvs/my_app/bin/activate test -d $LOGDIR || mkdir -p $LOGDIR gunicorn_django -w $NUM_WORKERS –debug \ […]

用nginx和uWSGI服务django

我跟着这个post来服务我的Django项目。 该项目与manage.py runserver运行服务器运行良好,我想设置为生产。 这是我的设置文件: nginx.conf : upstream django { server /tmp/vc.sock; #server 10.9.1.137:8002; } server { listen 8001; server_name 10.9.1.137; charset utf-8; client_max_body_size 25M; location /media { alias /home/deploy/vc/media; } location /static { alias /home/deploy/vc/static; } location / { uwsgi_pass django; include /etc/nginx/uwsgi_params; } } uwsgi.ini : [uwsgi] chdir = /home/deploy/vc wsgi-file = vc/wsgi.py master […]