конфиг nginx

This commit is contained in:
Sergei Erjemin 2023-11-23 15:25:54 +03:00
parent c95aa4a6f3
commit bc16cf828b

108
configs/cube2-ru__dq.conf Normal file
View File

@ -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
}