#  Разработка сайта OKNARDIA.RU
#  ==  Конфикурационный файл nginx oknardia.conf

# Описываем апстрим-потоки которые должен подключить Nginx
# Для каждого сайта надо настроить свйо поток, со своим уникальным именем.
# Если будете настраивать несколько python (django) сайтов - измените название upstream

upstream oknardia-django {
    # расположение файла Unix-сокет для взаимодействие с uwsgi
    server unix:/home/web/oknardia-ru/socket/oknardia.sock;
    # server ///home/web/oknardia-ru/socket/oknardia.sock;
    # также можно использовать веб-сокет (порт) для взаимодействие с uwsgi. Но это медленнее
    # server 127.0.0.1:8001; # для взаимодействия с uwsgi через веб-порт
    keepalive_requests 200;
}

# конфигурируем сервер
server {
    server_name			tmp.cube2.ru;		# доменное имя сайта
    listen			80;			# managed by Certbot
    ## listen 443 ssl http2; # managed by Certbot
    ## ssl_certificate /etc/letsencrypt/live/cadpoint.ru/fullchain.pem; # managed by Certbot
    ## ssl_certificate_key /etc/letsencrypt/live/cadpoint.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_name           90.156.203.25;	# доменное имя сайта
    charset         utf-8;              # кодировка по умолчанию
    access_log  /home/web/oknardia-ru/logs/oknardia-access.log;    # логи с доступом
    error_log   /home/web/oknardia-ru/logs/oknardia-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/oknardia-ru/public/media;  }	# Расположение media-файлов Django
    location /static	{ alias	/home/web/oknardia-ru/public/static; }	# Расположение static-файлов Django

    location /robots.txt	{ root	/home/web/oknardia-ru/public; }	# Расположение robots.txt
    location /favicon.ico	{ root	/home/web/oknardia-ru/public; }	# Расположение favicon.ico
    location /favicon.gif	{ root	/home/web/oknardia-ru/public; }	# Расположение favicon
    location /favicon.png	{ root	/home/web/oknardia-ru/public; }	# Расположение favicon
    location /favicon.svg	{ root	/home/web/oknardia-ru/public; }	# Расположение favicon
    location /author.txt	{ root	/home/web/oknardia-ru/public; }	    # Расположение author.txt
    location = /404.html	{
         root	/home/web/oknardia-ru/oknardia/templates/404.html;
         internal;
    }
    location = /500.html	{
         root	/home/web/oknardia-ru/oknardia/templates/500.html;
         internal;
    }
    # location ~ \.(html|htm|ico|svg|png|gif|jpg|jpeg)$	{
    location ~ \.(xml|html|htm|ico|svg|png|gif|jpg|jpeg)$	{
        root  /home/web/oknardia-ru/public;        # Расположение статичных *.xml, *.html и  *.txt
    }

    location / {
        uwsgi_pass           oknardia-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;      # на всякий случай время записи в сокет 
    }
}

# переадресация с www на "без" www
server {
    server_name  www.tmp.cube2.ru;
    listen       80;
    return       301 http://tmp.cube2.ru$request_uri;

    ## listen 443 ssl; # managed by Certbot
    ## ssl_certificate /etc/letsencrypt/live/cadpoint.ru/fullchain.pem; # managed by Certbot
    ## ssl_certificate_key /etc/letsencrypt/live/cadpoint.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
}

# переадресация с http на https
##server {
##    if ($host = oknardia.ru) {
##        return 301 https://$host$request_uri;
##    } # managed by Certbot
##
##    listen 80;
##    server_name	  cadpoint.ru;
##    return 404; # managed by Certbot
##}

# переадресация с http на https для www
##server {
##    if ($host = www.cadpoint.ru) {
##        return 301 https://cadpoint.ru$request_uri;
##    } # managed by Certbot
##
##    listen       80;
##    server_name  www.cadpoint.ru;
##    return 404; # managed by Certbot
##}

