vashal

 
<<< Назад

Конфиг nginx

Рабочий конфиг nginx

При переносе Majordomo с RaspberryPi на самодельный NAS с Openmediavault столкнулся с необходимостью создания конфига для nginx. В процессе столкнулся с проблемами при обращении к API и невозможностью настройки модуля YandexHome, но на профильных ветках на форуме данные проблемы были освещены и в итоге родился следующий конфиг, на котором все работает без проблем :)
ВНИМАНИЕ!!! Из-за особенностей движка коннекта в конфиге есть такие строки: nfтчкphp. В этом слове надо "тчк" заменить на "." (без кавычек).

server {
  listen 80 default_server; #слушаем 80й порт
  listen [::]:80;
  listen 443 ssl; #слушаем 443 порт https для YandexHome
  listen [::]:443 ssl;
  ssl_certificate /etc/letsencrypt/live/fullchain.pem; #путь к цепочке сертификатов
  ssl_certificate_key /etc/letsencrypt/live/privkey.pem; #путь к сертификату
  server_name mdm.local; #имя сайта, можно поставить _ для обращения по IP
  charset utf-8; #кодировка utf-8 по умолчанию
  client_max_body_size 150M; #максимально допустимый размер запроса клиента для возможности загрузки больших файлов
  access_log  off; #отключаем лог подключений
  error_log  /var/log/nginx/majordomo_error.log; #файл лога ошибок
  root   /var/www/majordomo; #путь к папке Majordomo
  index  index.php index.htm index.html; # индекс

    location /api { #обработка API запросов
        rewrite ^(.*)$ /api.php;
    }

    location / { 
        rewrite pda$ /popup/pda.html redirect; #обработка pda
        if (!-e $request_filename){ #если нет запрошенного файла, перенаправляем на nfтчкphp
            rewrite ^(.*)$ /nfтчкphp;
        }
    }

    location /config.php { #запрет доступа к config.php
        deny all;
    }

    location /debmes.txt { #запрет доступа к debmes
        deny all;
    }

    location /backup { #запрет доступа к бэкапам
        allow 127.0.0.1; #для самого сервера доступ разрешен
        deny all;
    }

    location ~ /\.ht { #запрет доступа к .ht... файлам
        deny all;
    }

    location ~ [^/]\.php(/|$) { #обработка php
        fastcgi_split_path_info ^(.+?\.php)(/.*)?$;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock; #путь к php-fpm
        fastcgi_index index.php;
        fastcgi_param PATH_INFO    $fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        include fastcgi_params;
                #подробное описание настроек выше можно прочитать по ссылке https://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html#fastcgi_split_path_info
                #настройки ниже относятся к настройкам PHP
        fastcgi_param PHP_VALUE "short_open_tag=on"; #разрешаем короткую форму записи (<? ?>) тегов PHP.
        fastcgi_param PHP_VALUE "error_reporting=E_ALL & ~E_NOTICE"; #задаем уровни ошибок
        fastcgi_param PHP_VALUE "max_execution_time=90"; #задаем максимальное время в секундах, в течение которого скрипт должен полностью загрузиться
        fastcgi_param PHP_VALUE "max_input_time=180"; #задаем максимальное время в секундах, в течение которого скрипт должен разобрать все входные данные, переданные запросами вроде POST или GET
        fastcgi_param PHP_VALUE "post_max_size=200M"; #задаем максимальный размер отправляемого через POST-запрос файла 
        fastcgi_param PHP_VALUE "upload_max_filesize=50M"; #задаем максимальный размер файла для закачки
        fastcgi_param PHP_VALUE "max_file_uploads=150"; #задаем максимальное количество одновременных загрузок
    }
}

Обсуждение (9) (10)

Смотрите так же:
17.05.2023 Алиса, заведи машину!
07.12.2022 Управление гирляндами Twinkly
29.09.2022 PHP cURL на Windows и штатной установке
13.06.2019 gps-trace.ru

Иркутск, Россия

На форуме: V.A.S.t