# Разработка сайта DQ.CUDE2.RU # == Конфикурационный файл nginx cube2-ru__dq.conf # Описываем апстрим-потоки которые должен подключить Nginx # Для каждого сайта надо настроить свйо поток, со своим уникальным именем. # Если будете настраивать несколько python (django) сайтов - измените название upstream upstream dq-django { # расположение файла Unix-сокет для взаимодействие с uwsgi server unix:///home/web/cube2-ru_dq/socket/dq.sock; # /home/web/cube2-ru_dq/socket/dq.sock; # также можно использовать веб-сокет (порт) для взаимодействие с uwsgi. Но это медленнее # server 127.0.0.1:8001; # для взаимодействия с uwsgi через веб-порт keepalive_requests 200; } # конфигурируем сервер server { server_name dq.cube2.ru; # доменное имя сайта # listen 80 http2; # managed by Certbot # server_name 90.156.203.25; # доменное имя сайта charset utf-8; # кодировка по умолчанию access_log /home/web/cube2-ru_dq/logs/cube2-ru-dq-access.log; # логи с доступом error_log /home/web/cube2-ru_dq/logs/cube2-ru-dq-error.log; # логи с ошибками client_max_body_size 100M; # максимальный объем файла для загрузки на сайт (max upload size) error_page 404 /404.html; error_page 500 /500.html; location /media { alias /home/web/cube2-ru_dq/public/media; } # Расположение media-файлов Django location /static { alias /home/web/cube2-ru_dq/public/static; } # Расположение static-файлов Django location /robots.txt { root /home/web/cube2-ru_dq/public; } # Расположение robots.txt location /favicon.ico { root /home/web/cube2-ru_dq/public; } # Расположение favicon.ico location /favicon.gif { root /home/web/cube2-ru_dq/public; } # Расположение favicon location /favicon.png { root /home/web/cube2-ru_dq/public; } # Расположение favicon location /favicon.svg { root /home/web/cube2-ru_dq/public; } # Расположение favicon location /author.txt { root /home/web/cube2-ru_dq/public; } # Расположение author.txt location = /404.html { root /home/web/cube2-ru_dq/dicquo/templates/404.html; internal; } location = /500.html { root /home/web/cube2-ru_dq/dicquo/templates/500.html; internal; } location ~ \.(html|htm|ico|svg|png|gif|jpg|jpeg)$ { # location ~ \.(xml|html|htm)$ { root /home/web/cube2-ru_dq/public; # Расположение статичных *.xml, *.html и *.txt } location / { uwsgi_pass dq-django; # upstream обрабатывающий обращений include uwsgi_params; # конфигурационный файл uwsgi; proxy_set_header Host $host; # ограничение количества запросов c одного IP-адреса с помощью модуля Limit_Req_Module # limit_req zone=one burst=20 nodelay; # one — имя зоны настроеной в /etc/nginx/nginx.conf (для всех сайтов сервера) в блоке http {…} # burst — максимальный всплеск активности, можно регулировать до какого значения запросов # в секунду может быть всплеск запросов; # nodelay — незамедлительно, при достижении лимита подключений, выдавать код 503 # (Service Unavailable) для этого IP fastcgi_keep_conn on; uwsgi_read_timeout 1800; # некоторые запросы на Raspbery pi очень долго обрабатываются. Например, переиндексация. uwsgi_send_timeout 200; # на всякий случай время записи в сокет } listen 443 ssl http2; # managed by Certbot ssl_certificate /etc/letsencrypt/live/dq.cube2.ru/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/dq.cube2.ru/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } # переадресация с www на "без" www server { server_name www.dq.cube2.ru; return 301 http://dq.cube2.ru$request_uri; listen 443 ssl http2; # managed by Certbot ssl_certificate /etc/letsencrypt/live/dq.cube2.ru/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/dq.cube2.ru/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = dq.cube2.ru) { return 301 https://$host$request_uri; } # managed by Certbot server_name dq.cube2.ru; listen 80; return 404; # managed by Certbot } server { if ($host = www.dq.cube2.ru) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; server_name www.dq.cube2.ru; return 404; # managed by Certbot }