2020-dq/configs/cube2-ru__dq.conf
2023-11-23 15:25:54 +03:00

108 lines
5.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Разработка сайта 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
}