Развернуть, как никто не смотрит (4 серии части)
Наши разработчики многое пережили. Это их истории. Это говорит Индра, один из наших старших приложений.
Ранее мы опубликовали статью о развертывании Laravel в Google App Engine. Однако, после его использования некоторое время, мы решили, что нам нужно больше гибкости и доступа к серверу, и мы начали исследовать. Результат: теперь мы перешли на Google Compute Engine.
Google Compute Engine (GCE) ближе к VPS, и у каждого из них есть свои преимущества и недостатки. Хотя я не думаю, что Google Compute Engine — лучший выбор для всех приложений, у нас была очень конкретная потребность в определенном центре обработки данных и статический IP в этой области. Имея в виду эти ограничения, GCE выглядел как лучший вариант. Ниже приведена иллюстрированная история о том, как мы это сделали.
До начала
Прежде чем идти по этой дороге, я настоятельно рекомендую пройти документацию Google. Хотя этого сообщения будет достаточно, чтобы поднять ваше приложение и запустить еще некоторую настройку, прочитав документы. Документация Google по развертыванию приложения PHP вполне не хватает, поэтому я также посмотрел на документы Python, что помогло.
Я также должен отметить, что я использовал Nginx Для этого примера. Если вы хотите использовать Apache, пожалуйста, посмотрите на Этот учебник по коммуникации Анкет
Это развертывание требует Основные знания Linux Как мы будем развертываться на Linux VM Анкет
Предварительные условия
- Google Cloud Shell
- PHP на Google Cloud Platform Анкет Мы будем использовать гибкую среду, так что прочитайте это.
- Необязательно: Python на Google Cloud
- Настройте свой ключ SSH
В вашем терминале (я использую git bash в Windows, чтобы получить свободы как тип Ubuntu/Linux): ssh -keygen -t rsa
При запросе на местоположение и имя файла нажмите Enter для по умолчанию или установите свой собственный: Введите файл, в который можно сохранить ключ (/home/.ssh/id_rsa):
При запросе на пасфразу напишите защищенный (рекомендуется) или нажмите Enter, чтобы пропустить, используя фразу Passfrase: Введите PassFrase (пусто без пассийной фразы):
Запустите эту команду, чтобы получить свой открытый ключ, и скопируйте его на потом: Cat ~/.ssh/id_rsa.pub
Подготовка к развертыванию
Примечание : Эта часть статьи была адаптирована из нашего сообщения Google App Engine.
Создайте учетную запись Google Cloud: https://cloud.google.com/ или прямо здесь https://console.cloud.google.com . Вы получаете кредит на 365 дней/300 $ в качестве судебного разбирательства (в зависимости от того, что наступит). Если вы не очень старый пользователь (бета -тестер), вам также потребуется добавить свою карту, но вас не будут взиматься.
Создайте новый проект => Quick Video Здесь если нужно.
Создание экземпляра вычислительного двигателя продолжается ниже.
Мы будем использовать Google Cloud Shell для развертывания: https://cloud.google.com/shell/docs/quickstart Анкет Чтобы иметь возможность использовать его, вам нужно загрузить облачный SDK для вашей операционной системы: https://cloud.google.com/sdk/ . Вы можете использовать облачную оболочку прямо из своего браузера, как видно здесь, или вы можете установить облачную оболочку. Я установил его на своем компьютере, когда нашел браузер один невозможный для использования). Если вы запускаете Windows, вам нужно открыть его с правами администратора. Следуйте учебному пособию с быстрым началом от Google для другого OSS.
Прежде чем продолжить с Google Cloud Shell, я рекомендую прочитать это о среде PHP: https://cloud.google.com/php/docs Анкет
Войдите из консоли с помощью команды gcloud auth login Анкет Вы будете войти через браузер. Если вы хотите увидеть все доступные команды, напишите gloud help В командной строке и нажмите Enter.
Тип Gcloud Config Set Project_id В командной строке, где идентификатор проекта — это идентификатор проекта, который вы только что дали вашему недавно созданному проекту. Его можно найти в Google Console на первой странице после того, как вы выберете проект в разделе «Виджет информации о проекте».
Чтобы увидеть список всех ваших проектов типа Список проектов GCLOUD Анкет
Это для предварительных условий. Мы пройдемся через настройку базы данных и необходимые загрузки по мере продвижения.
Подготовка вашего проекта
В отличие от GAE, чтобы развернуть на GCE вам не нужно менять. Тем не менее, вы можете поместить свое приложение в контейнер Docker, как объяснено здесь, и сделать вашу работу проще.
Создание экземпляра вычислительного двигателя
Шаг 1 Анкет Нажмите «Создать новый экземпляр»
Шаг 2 Анкет На странице экземпляра Create убедитесь, что вы знаете, кому вы служите (GCE настроен на регион). В моем случае я планирую служить ЕС и Австралии. Поэтому я создам 2 экземпляра с балансировщиком нагрузки перед ними.
а Имя : Дайте имя своему экземпляру (будет использоваться при подключении через оболочку Google Cloud SDK)
беременный Регион : Выберите регион, который вы хотите на сервере (в моем случае я выбрал Европу-Запад-3 и Австралию-Юг-Ист1). Не стесняйтесь выбирать любую зону, которую вы хотите.
в Тип машины : Я рекомендую использовать несколько микроэффектов в начале, чтобы проверить, что вам нужно. Проверьте цену справа. Обычно это немного отличается в зависимости от области, поскольку я могу только предположить, что налоги. Вы можете настроить свою машину. Давай, проверь это.
дюймовый Контейнер : Здесь вы можете решить огромную головную боль и продолжать использовать Docker. Я буду использовать машину в качестве VPS, чтобы пока не буду использовать это.
е — Identity и API Access : Так как мы реализуем множество API Google для этого приложения, включая журнал и хранение, которые, как я выбрал, разрешают полный доступ ко всем облачным API. Однако, если вы планируете использовать только один или два API, перейдите с установленным доступом для каждого API. Я не фанат разрешения по умолчанию, но хорошая новость в том, что вы можете изменить эти настройки в любое время.
f. Брандмауэр : Я пошел дальше и выбрал, разрешить https трафик. Это потому, что мы не планируем разрешать какой -либо http -трафик. Просто сделайте свой выбор здесь в соответствии с тем, что вы используете в своем приложении (внешние API, CORS запрашивают и т. Д.)
g . Идите вперед и нажмите на управление, диски, сетевые связи, клавиши SSH, так как мы будем настраивать ключ SSH и несколько настройки:
— Описание: я оставил его пустым
— Ярлыки: я оставил это пустым. Они используются для организации проекта, но так как я создаю новый проект Google Cloud для каждого проекта Laravel, который у меня есть, я пропускаю это каждый раз
— Защита от удаления: если вы включите это, вы больше не можете удалить этот экземпляр. Единственный способ удалить экземпляр — удалить весь проект. Однако вы можете выключить экземпляр, чтобы избежать выставления счетов.
— Автоматизация запуска сценария: пусто. Добавьте любой сценарий, который вы хотите запустить на метаданных startuup: пусто. Используется для запуска и сценариев выключения (если у вас есть). Я не.
— Предварительная неприямость политики доступности: Если вы не хотите автоматический перезапуск машины TMP.
Шаг 3 Анкет Готово. Нажмите «Создать».
Шаг 4 Анкет Теперь я создал машину ЕС и должен также создать австралийскую машину, но, обсудив проблему, я решил закончить настройку первой, а затем просто клонировать ее.
Настройка вычислительной машины двигателя
После запуска моей машины я пойду вперед и войду в нее через консоль. Есть два способа сделать это:
В браузере (нажмите кнопку SSH в списке экземпляров). Что я не сделаю, потому что я предпочитаю консоли Google SDK, но если вы в пути и в спешке, это хороший выбор.
Запустите консоль Google и тип: gcloud auth login Анкет Как только вы нажмете Enter, вы будете перенаправлены в свой браузер, где вы можете нормально войти в свою учетную запись Google.
Теперь нам нужно настроить проект. Так что просто введите это в консоли: Gcloud Config Set Project_id Анкет Где Project_ ID — это идентификатор проекта, который вы только что дали вашему недавно созданному проекту. Его можно найти на консоли Google на первой странице после того, как вы выберете проект в разделе «Виджет информации о проекте».
Чтобы увидеть список всех ваших проектов типа: Список проектов GCLOUD
Войти в тип машины: Gcloud Compute SSH Exance-X Анкет Exant-x-это имя экземпляра.
Чтобы увидеть информацию о типе проекта: Gcloud Compute Project-Info описать-Проект Project_ID Анкет
Если у вас уже есть проект в другой зоне, используйте эту команду: Gcloud Compute Project-Info Add-Metadata-Metadata-West1-B
Если возникает какая -либо проблема с вашим SSH Connection, попробуйте запустить: Sudo Gcloud Compute Config-SSH
Или следуйте этому уроку: https://cloud.google.com/compute/docs/instances/connective-advanced#thirdpartytools
Настройка базы данных
Чтобы настроить базу данных, мы должны следовать практически тому же процессу, что и для Google App Engine.
Перейти к https://console.cloud.google.com Выберите свой проект, затем перейдите в левое меню и выберите SQL.
Оказавшись там, нажмите «Создать экземпляр» (второе поколение) и дайте экземпляру SQL DB имя. Для получения дополнительной информации о выборе настройки, пожалуйста, обратитесь к Настройка базы данных SQL раздел в Как развернуть веб -приложение Laravel в Google App Engine Анкет
После того, как вы создали базу данных, которая соответствует вашим потребностям, вы подключите ее к обоим случаям. Вот как это делается:
Перейдите в свой список экземпляров и скопируйте внешние IPS из Compute Engine
Нажмите на вкладку базы данных и НПО на авторизацию
На вкладке «Авторизация» добавьте имя экземпляра во входе имени и IP -адрес в сетевом вводе.
- С его именем пользователя базы данных, настройкой хоста и имени Ваш файл .env
Группы экземпляров и SSL
Теперь ты в. Это похоже на любую другую машину VPS, так что продолжайте и установите модули Nginx, PHP, MySQL, GIT, композитор (не DB, поскольку это управляет) и так далее. Сервер обычно поставляется с запуском Apache, но я предпочитаю Nginx из -за проблем с оптимизацией, в которых я обычно работаю с Apache.
Примечание : Вы несете ответственность за все, что вы установите на своей машине, и любые потенциальные проблемы. Теперь я просто клонирую свой репозиторий в USR/Share/Nginx/HTML и включенные сайты настроек.
Single Machine против нескольких настройки машины
Прямо сейчас у вас есть возможность установить сертификат LetsEncrypt и двигаться дальше с Live или вы можете продолжить с помощью нескольких машин. Если вы решите сохранить только одну машину, прокрутите вниз, чтобы настроить свой домен, но если вы решите продолжить настройку нескольких машин, продолжайте читать.
Несколько машин. Настройка
Как только моя машина запускается, я клонирую первый экземпляр и перемещаю центр обработки данных второго на US-EAST1. После того, как я клонировал машину, я должен настроить вторую машину так же, как я сделал первое.
В процессе написания этого блога я удалил и воссоздал машины, чтобы имена могли измениться в картинках, но я буду продолжать называть их экземпляр 1 и 2.
Как только ваши экземпляры будут готовы, пришло время создать группу экземпляров.
Создание группы экземпляров
Перейдите в свой список экземпляров VM. На 3 точках в конце в вашем первом экземпляре нажмите Новая группа экземпляров Анкет
Выберите Un -Managed (или нет, в зависимости от ваших потребностей) и добавьте второй экземпляр в конце страницы. Нажмите «Создать».
Если вы хотите выбрать управление, вам необходимо создать и шаблон экземпляра, который Google может автоматически вращаться при увеличении трафика. Для этого вам также нужен сценарий стартапа, чтобы запустить, когда он пробивается. Вы можете написать это в Bash.
Настройка домена
Перейдите в левое меню и выберите VPC Network
Теперь выберите внешние IP -адреса и убедитесь, что ваш экземпляр работает на статическом IP -адресе. Если это не оставляет за собой его.
Чтобы настроить домен в группе экземпляров, вам нужно перейти в левую сторону меню и нажмите на сетевые сервисы
Оказавшись там в левом меню, вам нужно выбрать облачный DNS
Нажмите «Создать зону» и заполните поля следующим образом:
Название зоны : Что -то, чтобы распознать этот домен по
DNS имя : Домен (в моем случае updivision.work. Не добавляйте субдомен. Мы сделаем это позже)
Dnssec : Я выключил его, но вы можете прочитать больше информации, нажав на знак вопроса рядом с входом
Описание : Необязательно, что -то для описания вашей зоны
Нажмите «Создать»
Затем нам нужно создать запись для подключения IP -адреса, который мы зарезервировали к домену, который мы настраиваем. Нажмите на имя своей зоны, а затем добавьте записи, установленную в верхней части страницы.
Добавить запись. Скопируйте IP -адрес экземпляра и вставьте его в IPv4 Адрес ввода. Если вы хотите использовать субдомен, добавьте его во ввод DNS имени.
Как только вы нажмите «Создать», перейдите к продавцу домена и настроите The Nameservers (пользовательские DNS) с помощью записей, которые вы получили от Google.
Поскольку я использую SparkPost для отправки электронной почты и службы электронной почты Google, чтобы получить их в большинстве настройки доменов, которые мне не нужно настроить какую -либо запись для службы электронной почты, так как я буду использовать API, предоставляемый программно, но вы всегда можете настроить электронное письмо, добавив необходимые записи.
Сбл
Как было сказано, прежде чем вы можете установить letsEncrypt с Certbot, если вам нужен только один экземпляр (что, скорее всего, будет иметь место, если вы настроите небольшой веб -сайт или тестовую среду). Однако я продолжу с балансировкой нагрузки в этой главе, если вы стремитесь к производственной среде.
Зайдите в левое меню и нажмите «Сетевые службы», и на этот раз выберите балансировку нагрузки.
Нажмите «Создать балансировщик». На следующем экране выберите балансировку нагрузки HTTP (S). Для получения дополнительной информации вы можете перейти по этой ссылке: https://cloud.google.com/load-balancing/docs/https/
Нажмите «Начальная конфигурация». Дайте ему имя и нажмите на конфигурацию бэкэнд.
Выберите «Создать сервисные услуги» и «Бэкэндные ведра» и выберите «Создать сервис Backend»
Дайте ему имя, выберите группу экземпляров и отредактируйте протокол, чтобы быть HTTPS
Я также прокрутил вниз и проверил также Cloud CDN. Перед нажатием «Создать» мне нужно было создать проверку здоровья.
Нажмите «Сохранить и продолжить», затем нажмите «Создать». На первом экране (отобразится после нажатия «Создать») я нажал «Создать».
Вы также можете дважды проверить свои настройки, перейдя на официальную страницу Google Cloud здесь: https://cloud.google.com/iap/docs/load-balancer-howto
Вот и пока, ребята. Я надеюсь, что вам понравился этот пост и посчитали его полезным. У вас есть какие -нибудь подсказки или собственные советы? Или, может быть, несколько вопросов? Не стесняйтесь спрашивать в комментариях.
Я рекомендую прочитать всю документацию Google, прежде чем начать работу и убедиться, что у вас запланирована установка. Мне пришлось один раз удалить свои экземпляры, потому что я не планировал их заранее.
Счастливого Ларавельного развертывания!
Развернуть, как никто не смотрит (4 серии части)
Оригинал: «https://dev.to/updivision/how-to-deploy-laravel-on-google-compute-engine-on-linux-3h30»