Облачный сервер для Laravel в Европе
Laravel - самый популярный PHP-фреймворк для веб-приложений. Когда ваша аудитория в Европе, размещение приложения Laravel внутри ЕС является и требованием GDPR, и практичным способом обеспечить быструю загрузку страниц. Этот материал разбирает характеристики сервера, короткий сценарий настройки и то, как облако DCXV поддерживает нагрузки Laravel.
Почему хостинг в ЕС важен для Laravel
Приложения Laravel работают с формами, аутентификацией, транзакциями интернет-магазинов и сохранёнными профилями пользователей. Всё это по GDPR относится к персональным данным. Право ЕС требует, чтобы такие данные обрабатывались на инфраструктуре в пределах Европейской экономической зоны, если у вас нет задокументированного правового основания для передачи за границу.
Помимо соответствия, задержка реально влияет на восприятие. Приложение Laravel из Праги доходит до пользователей в Германии, Австрии, Польше или Словакии менее чем за 20 мс в оба конца. Хостинг на восточном побережье США добавляет 90-110 мс на запрос ещё до того, как PHP начнёт выполняться. Для страницы, которая делает 10 запросов к базе и несколько обращений к Redis, эта разница заметна при каждом клике.
Минимальные требования к серверу
Laravel с PHP 8.2, Composer, MySQL или PostgreSQL и драйвером очередей требует больше, чем базовый VPS:
- RAM - минимум 2 ГБ для обычного веб-приложения с MySQL на том же сервере. 4 ГБ рекомендуется для приложений, использующих Redis для сессий, с одновременно работающими воркерами очередей.
- CPU - 2 vCPU для большинства продакшен-задач. 4 vCPU, если запускаете Horizon или несколько воркеров очередей вместе с веб-трафиком.
- Диск - 20-40 ГБ SSD. Логи Laravel, загрузки в storage и файлы базы быстро растут на активных приложениях.
- PHP - версия 8.2 или 8.3. В более старых версиях нет улучшений производительности и патчей безопасности, которые важны для продакшена.
Рекомендуемая конфигурация DCXV
DCXV работает в дата-центрах уровня Tier III в Чехии и Португалии, оба внутри ЕС. Тарифы облачных VPS начинаются от EUR 15 в месяц и включают круглосуточную поддержку инженеров без доплат - настоящих инженеров, которые помогут разобраться с конфигурацией Nginx или настройками пула PHP-FPM.
Для типичного приложения Laravel с умеренным трафиком 2 vCPU / 4 ГБ RAM - комфортная отправная точка. Если используете Laravel Horizon, запускаете несколько воркеров очередей или храните сессии в Redis вместе с кешем, рассчитывайте на 8 ГБ. Выделенные серверы bare-metal доступны от EUR 49 в месяц, когда общее оборудование не подходит.
Начните здесь: https://dcxv.com/data-center#cloud
Контакт: sales@dcxv.com
Руководство по настройке
После создания облачного сервера DCXV (Ubuntu 22.04) выполните эти команды:
apt update && apt install -y nginx mysql-server redis-server php8.2-fpm php8.2-mysql php8.2-redis php8.2-mbstring php8.2-xml php8.2-curl unzip
curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
composer create-project laravel/laravel /srv/myapp
chown -R www-data:www-data /srv/myapp/storage /srv/myapp/bootstrap/cache
php /srv/myapp/artisan migrate --force
Затем настройте Nginx на раздачу каталога public вашего Laravel и создайте службу systemd для php artisan queue:work, если используете очереди.
Ожидаемая производительность
На облачном инстансе 2 vCPU / 4 ГБ в Праге типичное приложение Laravel с MySQL обслуживает 300-600 запросов в секунду на закешированных маршрутах. Ответы контроллеров без кеша с запросами к базе выполняются за 50-150 мс в зависимости от числа и сложности запросов. Обращение к сессии в Redis добавляет менее 1 мс. Laravel Horizon обрабатывает 500-1000 задач в минуту на одном воркере в зависимости от сложности задачи. Задержка в оба конца от Франкфурта или Вены до сервера обычно 8-15 мс.
Это ожидания для оборудования такого класса, а не измерения в нашей собственной лаборатории. Считайте их отправной точкой для расчёта размера и измеряйте свою нагрузку: реальные цифры зависят от ваших данных, запросов и настройки гораздо сильнее, чем от провайдера.
