Articles of django

loggingDjango网站的在线用户快照(postgresql后端,nginxnetworking服务器)

在我的Django + postgresql网站上,我需要公开显示所有网站在某个时间点(这是一个社交网站)。 我该怎么做呢? 例如,是否有一种方法可以枚举在前10分钟内击中我的nginx web服务器的所有login用户? 像这样的东西可以工作。 我是一个初学者,现在正在寻找一个可行的解决scheme。 目前为了实现这一点,我将会话存储到数据库, 使用外部库来使会话可枚举。 这使我可以查询有多less唯一用户在某个时间点上线。 但是这个scheme造成了很多不必要的数据库stream量。 因此,日志和修剪日志变得无效。 此外pgFouine告诉我会话相关的数据库调用是我的网站目前最大的性能瓶颈。 这里有一个build议的解决scheme,但它使用数据库。

我如何强制nginx将caching文件夹中的响应保存在上游服务器的头文件中?

我使用Django REST Framework作为我的API,nginx作为反向代理,redis用于caching一些静态api数据。 我试图通过Cache-Control: max-age实现cachingCache-Control: max-age和Last-Modify标题。 简而言之,它看起来像这样: class SomeViewSet(viewsets.ModelViewSet): …. def list(self, request, *args, **kwargs): queryset = self.get_queryset() cache_key = self._get_cache_key() # get a key for reddis response = self._get_data_from_cache(cache_key) # get a data from reddis if response: # If data in redis return Response with a same Last-Modify # and 'Cache-Control': 'max-age=120' return response […]

从Nginx提供静态内容,但在Django中处理错误页面

我的静态和媒体文件由Nginx提供,其他请求由Django提供。 我有一个由Django提供的自定义404页面。 由于Nginx正在处理静态内容,因此任何对/ static / *的请求都会被Nginx处理。 我可以在Nginx中设置静态自定义404页面,但是我想让Django处理任何404页面。 是否有可能从Nginx提供静态内容,但在404的情况下,请求被转发到Django?

资源暂时不可用使用uwsgi + nginx

我有使用nignx-uwsgi django应用程序主机。 这是我的uwsgiconfiguration: [uwsgi] master = true socket = /var/uwsgi/uwsgi.sock chmod-socket = 666 chdir = /home/ubuntu/test wsgi-file = /home/ubuntu/test/test/wsgi.py virtualenv = /home/ubuntu/virtual vacuum = true enable-threads = true daemonize= /home/ubuntu/uwsgi.log 我在nignx日志中出错 2017/06/16 04:25:42 [error] 26129#0:* 1141328连接到上游的客户端连接()到unix:///var/uwsgi/uwsgi.sock失败(11:资源暂时不可用) xxx.xxx.xx,服务器: 而该网站显示502坏的网关。 我必须重新启动uwsgi来修复它。 但是错误的频率在增加。 有没有什么办法解决这一问题。

运行nginx的django服务器上的大型媒体文件出现403错误

我使用Nginx和Gunicorn运行DigitalOcean上托pipe的Django服务器。 当我遇到403错误时,我试图通过pipe理界面添加一个2MB的图片。 查看error.log指示权限被拒绝,如下所示: 2017/06/27 01:03:29 [error] 1643#1643: *30 open() "/home/brian/nydkc11/nydkc11/nydkcd11/media/image_main/dtc1.jpg" failed (13: Permission denied), client: 108.29.217.25, server: nydkc11.org, request: "GET /media/image_main/dtc1.jpg HTTP/1.1", host: "nydkc11.org", referrer: "http://nydkc11.org/admin/blog/image/7/change/" 最奇怪的是,较小的图像文件工作得很好(大约18 kb左右)。 任何人都知道为什么大的媒体文件可能会触发这个问题,我该如何解决? 我必须在我的nginx.conf设置client_max_body_size为100M ,如果这是一个有用的事情知道。

Django不会为csrftoken cookie设置HttpOnly

在我Django的settings.py中有 SESSION_COOKIE_HTTPONLY = True SECURE_CONTENT_TYPE_NOSNIFF = True SECURE_BROWSER_XSS_FILTER = True X_FRAME_OPTIONS = 'DENY' SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True SECURE_SSL_REDIRECT = True SECURE_HSTS_SECONDS = 15768000 SECURE_HSTS_INCLUDE_SUBDOMAINS = True SECURE_HSTS_PRELOAD = True SESSION_COOKIE_AGE = 2 * 24 * 3600 但是https://detectify.com发现这个标志没有设置为csrftoken cookie。 我检查了Chrome告诉我的cookie,如果我理解正确,那么空的HTTP列确认这两个cookie不仅仅是HTTP: 另外,如果我在chrome的控制台中执行document.cookie ,则会显示csrftoken值。 我想知道为什么会这样。 我有Django在uwsgi和nginx上运行。 nginxconfiguration如下,有问题的网站是https://rodichi.net : server { listen 443 ssl http2 default_server; server_name […]

Django 301和403在我的静态文件在生产中禁止错误

我试图使用nginx和gunicorn在ubuntu 14.04 vps上部署一个django网站,但我的css文件和js文件没有得到loaded.i在默认的django开发服务器上开发它,它工作得很好,但是当我部署我的网站和collectstatic并尝试通过浏览器访问它只有HTML文本被加载,并在我的浏览器控制台检查,我发现我的静态文件夹301和403 forbidden错误。 ia新手到Ubuntu和Django,以及我在网上find的所有线程和论坛只是指向文件的权限和所有权,并没有任何运气,当我纠正我的权限。 当我尝试访问Djangopipe理员时,我的浏览器错误的截图 这里是我的settings.py import os # Build paths inside the project like this: os.path.join(BASE_DIR, …) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings – unsuitable for production # See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = '' # SECURITY WARNING: don't run with debug turned […]

Django + gunicorn + nginx电报webhook ssl麻烦

我试图设置一个django作为webhooks电报机器人。 我使用这个命令创build一个ssl证书: openssl genrsa -out webhook_pkey.pem 2048 openssl req -new -x509 -days 3650 -key webhook_pkey.pem -out webhook_cert.pem # In Common Name i type a server IP address 安装程序在端口800上运行gunicorn,将nginx中的proxy_pass设置为localhost:800。 网站正常工作,我可以打开浏览器,看到我的主页。 Gunicorn从这个命令开始: gunicorn wsgi -b 127.0.0.1:800 # wsgi is django generated wsgi.py file 我的nginx.conf文件: upstream django { server 127.0.0.1:800; } server { listen 80; listen 443 ssl; […]

如何创buildmysite.wsgi文件?

我正在学习这个教程http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html用nginx和uwsgi设置django。 但是我对这条线感到困惑: uwsgi –http :8000 –module mysite.wsgi 在教程中,没有关于mysite.wsgi文件的信息。 这个文件应该是什么内容?

Djangopipe理file upload中的“连接重置”错误

每当我尝试通过我用Django Admin contrib pacakage构build的CMS上传一个mp3文件,服务器需要几分钟,然后给我一个“连接被重置”的错误。 我在使用NGINX的CentOS服务器上运行Django,它使用mod_wsgi for python代理Apache。 这可能是一个服务器设置问题?