Как стать автором
Обновить

Комментарии 11

Один вопрос. Как масштабироваться будете?
Вот у вас взлетел ваш проект и завтра к вам пришли 100000 уников. И ваш сайт приказал долго жить.
Я не работал с DO, поэтому предложил бы использовать AWS ECS. ECS (Elastic container service) это некий аналог кубернетеса от AWS. Запаковываете ваш ларавел в докер контейнер, создаете ECS кластер, таск дефинишн для сервиса, сервис с лоад балансером, пихаете всё это хозяйство туда. Тип раннеров fargate.
Монтируете AWS EFS (Elastic file storage) в места контейнера где нужен persistent storage (типа /var/www/data — но лучше бы все хранить в базах. Например в аналоге монги — Dynamodb).
Создаете RDS под базу данных, добавляете в переменные окружения креды для подключения.
Закрываете все снаружи AWS Cloudfront.
Все, вы восхитительны. По деньгам с учетом AWS Free tier будет стоить также, но ВСЮ инфру можно описать через тот же terraform или CloudFormation, а также например настроить пайплайны для автоматизации деплоя изменений laravel. Я уж не говорю о том что если проект выстрелит, то масштабировать его сможете за 15 минут с перекурами под любую нагрузку.
А если уж говорить про ваш метод — то и тут лучше бы воспользоваться terraform+ansible например.
Ручные изменения на любом сервере — зло.


Все вышесказанное является моим личным мнением и никоим образом не принижает нужности вашей статьи. К сожалению, многие все еще делают так)

Автор все-таки решал конкретную задачу — хостинг своего портфолио. А не хостинг проекта, который может выстрелить и потребовать масштабирования.

Тоже верно. Для портфолио даже то, что я сделал — оверкилл. Моё старое было на Gatsby и хостилось на бесплатных мощностях Zeit Now/Vercel.

Я не говорю, что мой подход, — production-ready best practice. Я сам новичок во всем этом. Спасибо за предложение, я обязательно разберусь. Вполне возможно, ваш вариант лучше.

<paranoiac_mode> Я бы еще посоветовал поменять стандартный порт ssh и обрубить все ненужные соединения, оставить только nginx allow </paranoiac_mode>

Предоставляем root доступ к laravel: GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Ваш пароль от MySQL>';


Это излишне, у рута и так все права на эту базу есть. Лучше создать отдельного пользователя и ему давать права

1. все компоненты php можно б поставить и одной командой.
2. насколько я помню, cerbot сам вносит изменения в конфиг nginx

Для новичка норм пойдет, пару лет назад пришлось попопеть над таким.

Один вопрос — почему не докер? Чтобы не проделывать все те же действия при смене поставщика услуг? Тот же docker-compose up проще будет чем повторение всех этих действий.
Взять тот же scaleway с более дешевым тарифом и приватным регистри

Можно автоматически повторять все эти действия тем же Ansible-плейбуком например
Не понятно за что человеку минус поставили, сам разбираюсь с докером, хотелось бы узнать чем докер в продакшене будет хуже?
Если попрактиковаться с настройкой Linux-сервера и установкой фреймворка — нормально.

Но с точки разумной достаточности можно было взять shared hosting, например на Beget-е. Там прекрасно устанавливается Laravel (в справочном разделе хостера есть отдельная статья на эту тему). Получите, условно говоря, вдвое больше возможностей за вдвое меньшие деньги.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории