Эта статья расскажет вам, как улучшить производительность вашего сайта, переведя его на FastCGI с использованием nginx и php-fpm. Это особенно актуально для тех, кто использует FastCGI в режиме модуля Apache или CGI.
Переход на FastCGI предоставляет значительные преимущества в скорости, но также влечет за собой некоторые изменения, например, отсутствие поддержки файла .htaccess в Apache. Если у вас есть специфические правила в этом файле, их нужно будет сконвертировать с помощью сервиса winginx.com/ru/htaccess и добавить в конфигурационный файл в рамках данного руководства.
Также обратите внимание, что если вы используете LSAPI на стандартном виртуальном хостинге, он также обеспечивает хорошую производительность. Для FastCGI (nginx + php-fpm) потребуются более мощные тарифные планы, подходящие для работы с любыми CMS.
Важно! Для сайтов на CMS, таких как WordPress, Joomla, OpenCart, Bitrix, потребуются дополнительные действия, которые мы рассмотрим далее.
Обратите внимание, что это руководство предназначено для VPS-серверов с панелью управления ISPmanager Lite 5. Для перехода на мощный виртуальный хостинг, пожалуйста, свяжитесь с отделом продаж.
Процесс перехода на fast-cgi
1. Войдите в панель управления хостингом как root (не как обычный пользователь), перейдите в раздел www-домены и определите владельца сайта и версию PHP, используемую на сайте.
2. Затем перейдите во вкладку пользователи, выберите владельца сайта и дважды кликните по нему.
3. Выберите пункт «Версия PHP (PHP-FPM)» и установите ту же версию PHP, которая использовалась ранее.
4. Возвращайтесь во вкладку www-домены и измените режим работы на FastCGI (nginx + php-fpm), сохраните изменения.
После перехода на FastCGI, возможно, что некоторые страницы сайта будут выдавать ошибку 404.
5. Чтобы исправить это, вернитесь в www-домены, выберите домен и нажмите «Конфиг». В зависимости от вашей CMS, добавьте соответствующий редирект:
Конфигурация для WordPress или Joomla в nginx
С использованием хостинга для сайтов на WordPress или Joomla вам нужно добавить следующий блок в конфигурацию nginx:
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
```
Конфигурация для Битрикс в nginx
Для сайтов на Битрикс конфигурация будет выглядеть иначе:
location @php {
# Другие настройки...
}
location ~* /\.ht {
deny all;
}
location ~ ^/(?!(\.well-known)) {
if (!-e $request_filename) {
rewrite ^(.*)$ /bitrix/urlrewrite.php last;
}
}
if (!-f $request_filename) {
rewrite ^(.*)/index.php$ $1/ redirect;
}
```
Конфигурация для Opencart в nginx
Для Opencart конфигурация выглядит следующим образом:
location / {
if (!-e $request_filename){
rewrite ^/(.+)$ /index.php?_route_=$1 last;
}
}
```
Важные замечания
- Эти конфигурации являются лишь примерами и могут потребовать дополнительной настройки в зависимости от специфики вашего сервера и приложения.
- Убедитесь, что после внесения изменений в конфигурационные файлы nginx, вы проверяете их на наличие ошибок командой `nginx -t` и перезагружаете или перезапускаете nginx, чтобы применить изменения.
- Если у вас есть SSL-сертификат, убедитесь, что вы внесли соответствующие изменения как в HTTP, так и в HTTPS блоках конфигурации.