Вступление
Когда вы будете готовы развернуть приложение Laravel в рабочей среде, вы можете сделать несколько важных вещей, чтобы обеспечить максимально эффективную работу приложения. В этом документе мы рассмотрим некоторые отличные отправные точки, чтобы убедиться, что ваше приложение Laravel правильно развернуто.
Конфигурация сервера
Nginx
Если вы развертываете свое приложение на сервере, на котором работает Nginx, вы можете использовать следующий файл конфигурации в качестве отправной точки для настройки вашего веб-сервера. Скорее всего, этот файл нужно будет настроить в зависимости от конфигурации вашего сервера. Если вам нужна помощь в управлении вашим сервером, рассмотрите возможность использования такой службы, как Laravel Forge :
server {
listen 80;
server_name example.com;
root /example.com/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Оптимизация
Оптимизация автозагрузчика
При развертывании в производство убедитесь, что вы оптимизируете карту автозагрузчика классов Composer, чтобы Composer мог быстро найти нужный файл для загрузки для данного класса:
composer install --optimize-autoloader --no-dev
Помимо оптимизации автозагрузчика, вы всегда должны обязательно включать файл в репозиторий исходного кода вашего проекта. Зависимости вашего проекта могут быть установлены намного быстрее, когда файл присутствует.
composer.lock
composer.lock
Оптимизация загрузки конфигурации
При развертывании приложения в рабочей среде вы должны убедиться, что во время процесса развертывания вы выполняете команду Artisan:config:cache
php artisan config:cache
Эта команда объединит все файлы конфигурации Laravel в один кэшированный файл, что значительно сокращает число поездок, которые фреймворк должен выполнить в файловой системе при загрузке значений конфигурации.
Если вы выполняете команду во время процесса развертывания, вы должны быть уверены, что вызываете функцию только из ваших файлов конфигурации. Как только конфигурация будет кэширована, файл не будет загружен и все вызовы функции вернутся .
config:cache
env
.env
env
null
Оптимизация загрузки маршрута
Если вы создаете большое приложение с большим количеством маршрутов, убедитесь, что вы выполняете команду Artisan во время процесса развертывания:route:cache
php artisan route:cache
Эта команда уменьшает все ваши регистрации маршрутов в один вызов метода в кэшированном файле, улучшая производительность регистрации маршрутов при регистрации сотен маршрутов.
Поскольку эта функция использует сериализацию PHP, вы можете кэшировать маршруты только для приложений, которые используют исключительно маршруты на основе контроллера. PHP не может сериализовать замыкания.
Развертывание с помощью Forge
Если вы не совсем готовы управлять собственной конфигурацией сервера или не можете настраивать все различные службы, необходимые для запуска надежного приложения Laravel, Laravel Forge является прекрасной альтернативой.
Laravel Forge может создавать серверы на различных провайдерах инфраструктуры, таких как DigitalOcean, Linode, AWS и других. Кроме того, Forge устанавливает и управляет всеми инструментами, необходимыми для создания надежных приложений Laravel, такими как Nginx, MySQL, Redis, Memcached, Beanstalk и другими.
0 комментариев