Настройка конфигурации NGINX + PHP-FPM 7.4 на Ubuntu 22.04 + Fastpanel

Добрый день.

Поднимаю сервер VDS для MODX 2.8.4. Ubuntu 22.04 + Fastpanel. Связка NGINX + PHP-FPM 7.4. Стандартную настройку конфигов сделал такую:

UPD Добавлены редиректы в конфиг и привязан сертификат Let's Encrypt, созданный через панель

Frontend

server {
    listen 10.10.10.10:80;
    server_name my-site.ru www.my-site.ru; // Тут и далее необходимо заменить my-site.ru на ваш домен
    return 301 https://$host$request_uri;
}

server {
    server_name my-site.ru www.my-site.ru;
    listen 10.10.10.10:443 ssl;
    ssl_certificate     /var/www/httpd-cert/my-site.ru_2023-02-13-01-35_39.crt;
    ssl_certificate_key /var/www/httpd-cert/my-site.ru_2023-02-13-01-35_39.key;
    
    charset utf-8;

    gzip on;
    gzip_min_length 1000;
    gzip_proxied any;
    gzip_types text/plain application/xml application/x-javascript text/javascript text/css text/json;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    gzip_comp_level 5;

    set $root_path /var/www/my_site_user/data/www/my-site.ru; // Тут и далее my_site_user необходимо заменить на ваше имя пользователя
    root $root_path;
    index index.html index.htm index.php;
    disable_symlinks if_not_owner from=$root_path;
	
    # Редирект со всех www доменов на адрес без www
    if ($host ~ "^www\.(.*)$") {
        return 301 $scheme://$1$request_uri;
    }
    
    # Редирект с index.php на корень сайта:
    if ($request_uri ~* "^(.*/)index\.php$") {
        return 301 $1;
    }

    # Запрет для всех для при обращении к ядру MODx из браузера
	location ~ ^/core/.* {
	  deny all;
	  return 403;
	}

    location / {
        try_files $uri $uri/ @rewrite;
    }

	location @rewrite {
	  rewrite ^/(.*)$ /index.php?q=$1;
	}

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/my-site.ru.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
     }

    location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf|ico|7z|doc|docx|map|ogg|otf|pdf|tff|tif|txt|wav|webp|woff|woff2|xls|xlsx|xml)$ {
        try_files $uri @rewrite;
        access_log off;
	    expires 10d;
	    break;
    }

    location @fallback {
        fastcgi_pass unix:/var/run/my-site.ru.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

	location ~ /\.ht {
	  deny all;
	}
    
    include "/etc/nginx/fastpanel2-sites/my_site_user/my-site.ru.includes";
    include /etc/nginx/fastpanel2-includes/*.conf;

    error_log /var/www/my_site_user/data/logs/my-site.ru-frontend.error.log;
    access_log /var/www/my_site_user/data/logs/my-site.ru-frontend.access.log;
}

BackEnd

[my-site.ru]
user = my_site_user
group = my_site_user
listen = /var/run/my-site.ru.sock
listen.owner = my_site_user
listen.group = www-data
listen.mode = 0666

pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 1000

php_admin_value[date.timezone] = "Europe/Moscow"
php_admin_value[open_basedir] = "/var/www/my_site_user/data"
php_admin_value[display_errors] = "off"
php_admin_value[log_errors] = "On"
php_admin_value[mail.add_x_header] = "On"
php_admin_value[max_execution_time] = "120"
php_admin_value[max_input_vars] = "10000"
php_admin_value[opcache.blacklist_filename] = "/opt/opcache-blacklists/opcache-*.blacklist"
php_admin_value[opcache.max_accelerated_files] = "100000"
php_admin_value[output_buffering] = "4096"
php_admin_value[post_max_size] = "512M"
php_admin_value[sendmail_path] = "/usr/sbin/sendmail -t -i -f 'my-site.ru@yandex.ru'"
php_admin_value[session.save_path] = "/var/www/my_site_user/data/tmp"
php_admin_value[short_open_tag] = "On"
php_admin_value[upload_max_filesize] = "512M"
php_admin_value[memory_limit] = "512M"
php_admin_value[cgi.fix_pathinfo] = "0"
php_admin_value[session.gc_probability] = "1"
php_admin_value[session.gc_divisor] = "100"
php_admin_value[session.gc_maxlifetime] = "28800"
php_admin_value[upload_tmp_dir] = "/var/www/my_site_user/data/tmp"
php_admin_value[error_log] = "/var/www/my_site_user/logs/php_errors.log"

catch_workers_output = no
access.format = "%{REMOTE_ADDR}e - [%t] \"%m %r%Q%q %{SERVER_PROTOCOL}e\" %s %{kilo}M \"%{HTTP_REFERER}e\" \"%{HTTP_USER_AGENT}e\""
access.log = /var/www/my_site_user/data/logs/my-site.ru-backend.access.log

Я не специалист по настройке серверов, и, возможно, что-то сделал неправильно. Поэтому не претендую на раздел готовых решений. Буду благодарен за конструктивную критику, и если поможете с исправлением ошибок или дополнениями.
Dmitry86
10 февраля 2023, 22:22
modx.pro
1
190
0

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0