Введение
Laravel — это бесплатный веб-фреймворк с открытым исходным кодом, написанный на PHP. Он был создан Тейлором Отвеллом в 2011 году с целью упростить разработку веб-приложений за счет предоставления элегантного и выразительного синтаксиса для написания кода.
Laravel основан на архитектуре Model-View-Controller (MVC) и предлагает множество функций, включая управление миграцией базы данных, управление сессиями и аутентификацией, маршрутизацию, обработку HTTP-запросов и создание представлений.
Laravel также известен своим большим сообществом разработчиков, которые помогают улучшать и поддерживать фреймворк. Это означает, что существует множество доступных онлайн-ресурсов, таких как официальная документация, учебные пособия, форумы и сторонние пакеты, которые можно использовать для помощи в разработке веб-приложений Laravel.
В этом руководстве мы предоставим полное руководство по настройке Nginx для приложения Laravel.
Установите Nginx
Прежде чем вы сможете настроить Nginx для своего приложения Laravel, вы должны сначала установить Nginx на свой сервер. Вы можете установить Nginx на свой сервер с помощью следующей команды:
sudo apt-get update
sudo apt-get install nginx
Установить PHP
Чтобы запустить приложение Laravel на Nginx, вам также необходимо установить PHP — язык сценариев, на котором построен Laravel. Вы можете установить PHP и его зависимости, выполнив следующую команду:
sudo apt-get install php php-fpm php-mysql
Эта команда устанавливает PHP, PHP FastCGI Process Manager и расширение MySQL для PHP.
После завершения установки вам необходимо настроить PHP для работы с Nginx. Вы можете сделать это, отредактировав файл конфигурации php-fpm:
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
В этом файле нужно обновить следующие настройки:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
Эти настройки гарантируют, что PHP работает под тем же пользователем и группой, что и Nginx, и прослушивает правильный сокет.
Сохраните и закройте файл, когда закончите, затем перезапустите PHP-FPM, чтобы применить изменения:
sudo systemctl restart php8.1-fpm
После установки и настройки PHP ваш сервер Nginx теперь готов обслуживать приложения Laravel.
Создайте блок сервера Nginx
Следующим шагом является создание блока сервера Nginx, который используется для определения параметров конфигурации для определенного веб-сайта или приложения. Чтобы создать серверный блок для вашего приложения Laravel, создайте новый файл в каталоге /etc/nginx/sites-available следующим образом:
sudo nano /etc/nginx/sites-available/laravel
В этом файле добавьте следующие параметры конфигурации:
server {
listen 80;
server_name example.com;
root /var/www/laravel/public;
index index.php;
location /{
try_files $uri $uri//index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
В этой настройке мы прослушиваем порт 80, определяем имя сервера как example.com и устанавливаем корневой каталог для приложения Laravel. Мы также указываем индексный файл и определяем блок местоположения для приложения Laravel. Кроме того, мы определяем блокировку местоположения для файлов PHP и указываем параметры FastCGI.
Включить блокировку сервера Nginx
После создания блока сервера его необходимо включить. Для этого создайте символическую ссылку из файла /etc/nginx/sites-available/laravel в каталог /etc/nginx/sites-enabled следующим образом:
sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
Перед перезапуском Nginx следует протестировать конфигурацию, чтобы убедиться в отсутствии синтаксических ошибок. Вы можете протестировать конфигурацию с помощью следующей команды:
sudo nginx -t
Если синтаксических ошибок нет, вы можете перезапустить Nginx с помощью следующей команды:
sudo systemctl restart nginx
Настроить SSL/TLS
Чтобы защитить ваше приложение Laravel, вам необходимо настроить SSL/TLS. Для этого вам потребуется получить сертификат SSL/TLS от доверенного центра сертификации (ЦС) и установить его на свой сервер. Получив сертификат, вы можете настроить SSL/TLS, добавив следующие параметры конфигурации в блок сервера:
listen 443 ssl;
ssl_certificate /path/to/your/certificate.pem;
ssl_certificate_key /path/to/your/private.key;
Вы должны заменить /path/to/your/certificate.pem и /path/to/your/private.key путями к вашему сертификату SSL/TLS и закрытому ключу соответственно.
Оптимизация производительности
Чтобы оптимизировать производительность вашего приложения Laravel, вы можете настроить кэширование Nginx. Кэширование может помочь снизить нагрузку на сервер и ускорить загрузку страниц. Чтобы включить кеширование, вы можете добавить в блок server следующие параметры конфигурации:
Включить кеширование
Кэширование может помочь повысить производительность вашего приложения Laravel, снизив нагрузку на сервер и сократив время загрузки страницы. Чтобы включить кеширование в Nginx, вы можете добавить следующую конфигурацию в свой серверный блок:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 1y;
add_header Cache-Control "public, no-transform";
}
Эта конфигурация указывает Nginx кэшировать файлы изображений, CSS и JavaScript в течение одного года и отправлять «общедоступный» заголовок Cache-Control.
Включить сжатие Gzip
Включение сжатия gzip также может помочь повысить производительность вашего приложения Laravel за счет уменьшения размера файлов, передаваемых между сервером и клиентом. Чтобы включить сжатие gzip в Nginx, вы можете добавить следующую конфигурацию в свой серверный блок:
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
Эта конфигурация указывает Nginx включить сжатие gzip для текстовых типов файлов.
Регулировать процессы и рабочие соединения
Наконец, вы можете настроить рабочие процессы и соединения, чтобы оптимизировать производительность вашего приложения Laravel на Nginx. Это может помочь гарантировать, что ваш сервер сможет обрабатывать большое количество запросов, не будучи перегруженным. Чтобы регулировать рабочие процессы и соединения, вы можете добавить следующую конфигурацию в блок http в файле nginx.conf:
worker_processes auto;
worker_connections 1024;
Эта конфигурация указывает Nginx автоматически определять количество ядер ЦП на сервере и использовать это число для рабочих процессов. Он также указывает максимум 1024 соединения на рабочий процесс.
Заключение
В этом руководстве мы предоставили полное руководство по настройке Nginx для приложения Laravel. Мы рассмотрели шаги по установке и настройке Nginx, созданию блока сервера Nginx для Laravel, включению SSL/TLS и оптимизации производительности. Следуя этим шагам, вы можете убедиться, что ваше приложение Laravel работает гладко и эффективно на Nginx.