注意alias和root的区别。
django中:
response['X-Accel-Redirect']='/protected_files/%s'%filename这样当向django view函数发起request时,django负责对用户权限进行判断或者做些其它事情,然后向nginx转发url为 /protected_files/filename的请求,nginx服务器负责文件/var/www/protected_files /filename的下载:
@login_required def document_view(request, document_id): book = Book.objects.get(id=document_id) response = HttpResponse() name=book.myBook.name.split('/')[-1] response['Content_Type']='application/octet-stream' response["Content-Disposition"] = "attachment; filename={0}".format( name.encode('utf-8')) response['Content-Length'] = os.path.getsize(book.myBook.path) response['X-Accel-Redirect'] = "/protected/{0}".format(book.myBook.name) return response files = os.listdir(os.path.join(unpackPath, 'META-INF/')) for f in files: if f.endswith( '.RSA') or f.endswith( '.DSA') : signaturesMD5 = getSignMD5(os.path.join(unpackPath, 'META-INF/',f)) git clone https://github.com/rfk/django-supervisor.git python manage.py celery worker --loglevel=info --beat python manage.py celery worker --loglevel=info python manage.py celery beat export C_FORCE_ROOT="true" rabbitmqctl add_vhosts appdict rabbitmqctl list_vhosts rabbitmqctl set_permissions -p /appdict appdict ".*" ".*" ".*"