Разместите Flutter WebApp с помощью Google Compute Engine

Фото Карстен Вюрт на Unsplash

Это серия заметок об исследовании Google Cloud Platform:

Домен, SSL и сайт Google (№1)

Разместите Flutter WebApp с помощью Google AppEngine (# 2)

Разверните Flutter WebApp с помощью Google Cloud Run (№3)

Разместите Flutter WebApp с помощью Google Compute Engine (№4)

Google предоставляет различные варианты веб-хостинга: Compute Engine, App Engine, Kubernetes, firebase, Cloud Run и облачные функции. Приведенная ниже таблица может помочь вам принять решение.

+--------------+---------------------------------------+
| Static site  | Cloud storage, Firebase hosting       |
+--------------+---------------------------------------+
| Dynamic site | Compute Engine, App Engine, Cloud Run |
+--------------+---------------------------------------+

  1. Создать проект Google Cloud
  2. Создать экземпляр виртуальной машины
  3. Разверните стек LAMP на вашем экземпляре
  4. Создайте веб-приложение Flutter
  5. Разверните WebApp на своем сервере
  6. Защитите сервер Apache с помощью сертификата SSL

Сначала перейдите в Google Cloud Platform, чтобы создать проект.

Google предоставляет новым пользователям бесплатный кредит в размере 300 долларов США на 90 дней, чтобы они могли попробовать пакет GCP, поэтому, даже если вам нужно настроить биллинг, с вас не будет взиматься плата, если вы останетесь в пределах своей бесплатной квоты. Но я бы порекомендовал настроить оповещения о бюджете, чтобы следить за своими расходами. Вы можете навсегда отключить его на время разработки и включить сервер ядра приложений по запросу одним щелчком мыши.

Теперь, когда у нас есть проект с Google Cloud, следующим шагом будет установка Google Cloud SDK, чтобы вы могли выполнять действия из инструмента командной строки:

./google-cloud-sdk/install.sh
./google-cloud-sdk/bin/gcloud init

gcloud components update

Безопасный и настраиваемый вычислительный сервис, позволяющий создавать и запускать виртуальные машины в инфраструктуре Google. ( cloud.google.com/compute )

  • Перейдите в Google Cloud Platform> Меню навигации> Compute Engine> Экземпляр ВМ> Создать экземпляр.
  • В поле имени введите имя вашей виртуальной машины, которое должно быть глобально уникальным. Далее следует выбрать тип машины. Если вы пробуете Compute Engine для тестирования, то e2-micro будет достаточно. В разделе брандмауэра выберите Разрешить трафик HTTP и HTTPS.
  • Разверните раздел « Управление, безопасность, диски, сеть, единоличное владение », нажмите « Сеть» и добавьте свой домен ( example.com ) в поле «Имя хоста» (этот шаг не является обязательным).
  • Зарезервировать статический IP

3. Разверните стек LAMP на своем экземпляре.

Стек «LAMP» - это группа программного обеспечения с открытым исходным кодом, которое обычно устанавливается вместе, чтобы сервер мог размещать динамические веб-сайты и веб-приложения. Этот термин на самом деле является аббревиатурой , которая представляет собой L операционную систему inux, паче веб - сервера, M базы данных ySQL и P HP. (digitalocean.com)

  • Перейдите в Экземпляр ВМ> SSH; запустит терминал на новой странице.
  • Установить ЛАМПУ
  • sudo apt-get update
    sudo apt-get install apache2 php libapache2-mod-php
    

  • Добавьте файл в корень веб-сервера и проверьте, работает ли Apache, введя HTTP: // [ваш-внешний-IP-адрес] /phpinfo.php
  • sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php'
    
           

    sudo apt-get update
    sudo apt-get install mariadb-server php php-mysql
    sudo systemctl start mariadb
    

  • Настроить сопоставление DNS

4. Создайте веб-приложение Flutter.

* Предварительные требования: IntelliJ или VS Code IDE со средой сборки Flutter.

Создайте новый проект Flutter с поддержкой Android / iOS / Web или используйте существующий проект Flutter, если он у вас есть. Выполните следующую команду, убедившись, что вы можете создавать и просматривать веб-страницу локально с помощью localhost: 8080

flutter build web

5. Разверните WebApp на своем сервере.

Существуют различные способы загрузки файлов с локального компьютера на сервер; здесь я буду использовать функцию загрузки файла из экземпляра Google VM.

  • заархивируйте папку build / web / со своего локального компьютера (web.zip)
  • Перейдите к своему экземпляру виртуальной машины и нажмите ssh> инструменты> загрузить файл.
  • Установите unzip в свой экземпляр виртуальной машины
  • sudo apt-get install unzip
    

    sudo mv web.zip /var/www/html
    sudo unzip web.zip
    cd web
    sudo mv * ../
    cd ..
    sudo rm -r web
    

Заметили, что рядом с вашим доменом есть треугольный значок, что указывает на то, что сайт небезопасен? Это потому, что мы еще не настроили сертификат SSL. Я буду использовать Let's Encrypt , центр сертификации, который предоставляет бесплатные сертификаты TLS / SSL для шифрования HTTPS на веб-серверах.

  • Установите Apache2
  • sudo apt update
    sudo apt install apache2
    sudo a2enmod http2
    

    sudo apt-get install python-certbot-apache
    sudo certbot --apache -m [YOUR-EMAIL] -d [YOUR-DOMAIN] -d www.[YOUR-DOMAIN]
    

Congratulations! You have successfully enabled https://test.com and
https://www.test.com
...

/etc/apache2/sites-available/your-domain-le-ssl.conf

sudo vi /etc/apache2/apache2.conf

  • Перезагрузите Apache
  • sudo systemctl reload apache2.service
    

  • Домен, SSL и сайт Google ✅
  • Разместите сайт: App Engine ✅
  • Размещение сайта: Docker и Cloud Run ✅
  • Разместите сайт: Compute Engine и виртуальная машина ✅
  • Хранилище и база данных
  • Создайте веб-приложение Flutter
  • Пакет операций Google (ведение журнала, мониторинг и отладка)

Suggested posts

Поиск информации о доменных именах

Отрывок из книги «Маленькие программные инструменты Sharp» Брайана П. Хогана.

Поиск информации о доменных именах

Когда вы делаете запрос на facebook.com, ваш компьютер ищет доменное имя, чтобы преобразовать это доменное имя в IP-адрес, чтобы ваш компьютер мог установить это соединение.

D-слово и L-слово в дизайне пользовательского интерфейса. Язык имеет значение. Не будь расистом.

D-слово и L-слово в дизайне пользовательского интерфейса. Язык имеет значение. Не будь расистом.

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

Related posts

Убийство Джордана Нили и проблема «патриотического» расизма

Могут ли США сделать важный шаг и не приравнивать расистское поведение к тому, чтобы быть хорошим американцем?

Убийство Джордана Нили и проблема «патриотического» расизма

[Предупреждение: в этом эссе есть снимки экрана, на которых люди восхваляют убийцу Джордана Нили.] Сотрудники правоохранительных органов наконец — и, возможно, неохотно — предъявили обвинение в этом убийстве Дэниелу Пенни, человеку, который душил Джордана Нили, пока тот не умер.

Почему некоторые фрилансеры притворяются своей жизнью

Почему некоторые фрилансеры притворяются своей жизнью

Недавно я был в Linkedin, крупнейшей в мире профессиональной социальной сети, и нашел посты дизайнеров-фрилансеров, за которыми я следил и которые привлекли мое внимание. Все они публиковали фотографии из самолетов, на пляже со своими ноутбуками, из бассейнов и офисов с потрясающими видами.

Как спасти планету и заработать деньги

Как спасти планету и заработать деньги

Сколько раз вы, не задумываясь, выбрасывали пластиковую бутылку, стеклянную банку, алюминиевую банку или пакет экологически чистой энергии? Сколько раз вы хотели получить что-то взамен за их переработку? Если вы похожи на большинство людей, ответ, вероятно, много раз. Переработка часто рассматривается как хлопотное дело, рутинная работа или обязанность, не приносящая немедленных или ощутимых выгод.

Что делает подкаст влиятельным?

Что делает подкаст влиятельным?

На прошлой неделе я заметил пресс-релиз, разосланный через PressGazette (новостной веб-сайт британских СМИ). В статье сообщалось, что Acast, скандинавская компания по размещению и рекламе подкастов, возглавит консорциум «вероятно, самых влиятельных» издателей подкастинга.