Категории

Дополнительная настройка Nginx: PHP, SSL и оптимизация

2025-07-25 10:29:43 | Linux
Дополнительная настройка Nginx: PHP, SSL и оптимизация

После базовой установки Nginx часто требуется дополнительная настройка для работы с PHP, настройки SSL/TLS и оптимизации производительности.

Настройка PHP обработки через PHP-FPM

Установка PHP-FPM

Для Debian/Ubuntu:

sudo apt install php-fpm php-mysql

Для CentOS/RHEL:

sudo yum install php-fpm php-mysqlnd

Конфигурация Nginx для работы с PHP

Добавьте в конфигурацию вашего сайта:

location ~ \.php$ {
    include snippets/fastcgi-php.conf; # На Debian/Ubuntu
    # include fastcgi.conf; # На CentOS/RHEL
    fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

Важно: Убедитесь, что версия PHP в пути к sock-файлу соответствует установленной!

Проверка работы PHP

Создайте файл info.php в корне вашего сайта:

sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php'

Откройте в браузере http://ваш_сайт/info.php

Настройка SSL/TLS с Let's Encrypt

Установка Certbot

Для Debian/Ubuntu:

sudo apt install certbot python3-certbot-nginx

Для CentOS/RHEL:

sudo yum install certbot python3-certbot-nginx

Получение сертификата

sudo certbot --nginx -d example.com -d www.example.com

Автоматическое обновление сертификатов

Проверить автоматическое обновление:

sudo certbot renew --dry-run

Базовая оптимизация Nginx

Настройка worker процессов

В /etc/nginx/nginx.conf:

worker_processes auto; # Использовать все доступные ядра CPU
worker_rlimit_nofile 100000; # Лимит открытых файлов

Оптимизация keepalive

keepalive_timeout 30;
keepalive_requests 100000;

Включение gzip сжатия

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_min_length 1000;
gzip_comp_level 6;
gzip_proxied any;

Кэширование статических файлов

location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {
    expires 365d;
    add_header Cache-Control "public, no-transform";
}

Безопасность Nginx

Запрет доступа к скрытым файлам

location ~ /\. {
    deny all;
    access_log off;
    log_not_found off;
}

Защита от распространенных атак

add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "strict-origin";

Ограничение методов HTTP

if ($request_method !~ ^(GET|HEAD|POST)$ ) {
    return 405;
}

Настройка для популярных CMS

Конфигурация для WordPress

location / {
    try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

Конфигурация для Laravel

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    fastcgi_param DOCUMENT_ROOT $realpath_root;
}

Заключение

После выполнения этих настроек ваш Nginx будет:

  • Поддерживать обработку PHP через PHP-FPM
  • Работать с HTTPS через Let's Encrypt
  • Быть оптимизированным для лучшей производительности
  • Иметь базовые настройки безопасности
  • Быть готовым к развертыванию популярных CMS

Рекомендуется регулярно проверять логи Nginx и обновлять программное обеспечение для поддержания безопасности и стабильности работы.

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

DISCLAIMER: Блог-эксперимент

Внимание: Cтатьи здесь сгенерированы нейросетью, пока не правил ошибки, только запустил его да и не до этого. Просто чтобы вы знали и не запускали ядерный реактор по моим статьям ))
НО!
Каждый кейс я реально делал минимум один раз. Серьёзно.
Сервера стоят, клиенты довольны, дата-центры не горят.
Это не просто копипаста — это опыт, выстраданный в бою, просто пересказанный через ИИ.
Если у вас есть вопросы, или Нашли неточность? пишите в коментах — вместе поправим и сделаем статью более качественной. Я лично объясню нюансы из практики.

Посетителей сегодня: 0


© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA
Кто я | HSH | Контакты и регион