diff --git a/configs/cube2-ru__dq.conf b/configs/cube2-ru__dq.conf new file mode 100644 index 0000000..524a5d0 --- /dev/null +++ b/configs/cube2-ru__dq.conf @@ -0,0 +1,108 @@ +# Разработка сайта 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 +} \ No newline at end of file