Skip to content

Подготовка виртуального сервера

HTTP доступ

Примечание

loc.io - домен локации.

Для создания HTTP доступа пользователю необходимо выполнить следующие действия:

  1. Заказать сервис в Compute (например, CentOS 8.3):

  2. Настроить VPN-доступ в сервисе VPN.

  3. Подключиться к виртуальной машине, например, по SSH (ssh root@1.1.1.1).

  4. Установить веб-сервер:

    • Установите веб-сервер (в качестве примера: apache):

      sudo yum install -y httpd
      

    • Запустите веб-сервер:

      sudo systemctl enable httpd —now
      

    • Проверьте, что веб-сервер запущен:

      sudo systemctl status httpd
      

    Command Output Example

    httpd.service - The Apache HTTP Server
      Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
      Active: active (running) since Wed 2022-05-25 10:34:11 +03; 7s ago
        Docs: man:httpd.service(8)
    Main PID: 103004 (httpd)
      Status: "Started, listening on: port 80"
        Tasks: 213 (limit: 23512)
      Memory: 26.4M
    CGroup: /system.slice/httpd.service
              ├─103004 /usr/sbin/httpd -DFOREGROUND
              ├─103005 /usr/sbin/httpd -DFOREGROUND
              ├─103006 /usr/sbin/httpd -DFOREGROUND
              ├─103007 /usr/sbin/httpd -DFOREGROUND
              └─103008 /usr/sbin/httpd -DFOREGROUND
    
    May 25 10:34:11 alb-demo1.pt35.cmp.loc.io systemd[1]: Starting The Apache HTTP Server...
    May 25 10:34:11 alb-demo1.pt35.cmp.loc.io systemd[1]: Started The Apache HTTP Server.
    May 25 10:34:11 alb-demo1.pt35.cmp.loc.loc.io httpd[103004]: Server configured, listening on: port 80
    
    • Вспомогательные команды для работы веб-севера:

      • Перезагрузка конфигурации (при изменении файлов конфигурации):
      sudo systemctl reload httpd
      
      • Перезагрузка веб-сервера:
      sudo systemctl restart httpd
      
      • Проверка работы веб-сервера:
        Добавить в файл /var/www/html/index.html любой текст, например: “Hello from alb-demo1.pt35.cmp.loc.icdc.io”:

      Example

      [root@alb-demo1 ~]# curl http://localhost
      Hello from alb-demo1.pt35.cmp.loc.io
      
  5. Настройка системного Firewall.
    По умолчанию, системный Firewall блокирует весь HTTP и HTTPS трафик, который приходит извне на порты 80 и 443. Для отключения блокировки, необходимо добавить сервисы http, https в правила firewall. Для необходимо выполнить команды:

    sudo firewall-cmd —permanent —zone=public —add-service=http
    sudo firewall-cmd —permanent —zone=public —add-service=https
    

    Для того, чтобы правила применились, нужно перезагрузить конфигурацию firewall:
    sudo firewall-cmd —reload

    Проверить, что правила прописаны:

    sudo firewall-cmd —list-all
    
    public (active)
      target: default
      icmp-block-inversion: no
      interfaces: eth0
      sources: 
      services: cockpit dhcpv6-client http https ssh
      ports: 
      protocols: 
      forward: no
      masquerade: no
      forward-ports: 
      source-ports: 
      icmp-blocks: 
      rich rules: 
    
  6. Создать публичный маршрут в сервисе Load Balancer. Для этого нажмите Create Route и заполните параметры (пример):

  7. После создания публичного маршрута для корректной работы пользователю необходимо во вкладке DNS Domains указать, что cервер alb-demo1.pt35.cmp.loc.io ссылается на публичный хост (или IP адрес) балансировщика аккаунта, который указан на странице со всеми веб-маршрутами. В данном случае – это pt35.alb.loc.io.

    Для добавления записи в DNS перейдите во вкладку DNS domains.
    Выберите необходимый DNS домен (pt35.cmp.loc.io):

    В ней создайте запись типа CNAME:

    Проверьте, что публичный маршрут работает:

    В адресной строке браузера введите http://alb-demo1.pt35.cmp.loc.io

HTTPS доступ (автоматический выпуск сертификатов)

Edge-терминация

  1. При создании маршрута пользователю необходимо поставить галочку Безопасный маршрут и выбрать тип TLS ТерминацииEdge.

  2. Небезопасный трафик:

    • Allow – автоматическое перенаправления с http на https происходить не будет,
    • Redirect – автоматическое перенаправление на https.
  3. Если TLS Сертификат не выбран (None), то будет сгенерирован LetsEncrypt сертификат.

  4. Проверьте, что публичный маршрут работает:
    В адресной строке браузера введите http://alb-demo1.pt35.cmp.loc.io

Re-encrypt-терминация

Если на конечном виртуальном сервере используется протокол HTTPS, то необходимо выбирать данную опцию.

  1. При создании такого маршрута пользователю необходимо поставить галочку Безопасный маршрут и выбрать тип TLS Терминации - Re-encrypt.

  2. Небезопасный трафик:

    • Allow – автоматическое перенаправления с http на https происходить не будет,
    • Redirect – автоматическое перенаправление на https.
  3. Если TLS Сертификат не выбран (None), то будет сгенерирован LetsEncrypt сертификат.

Passthrough-терминация

  1. При создании такого маршрута пользователю необходимо поставить галочку Безопасный маршрут и выбрать тип TLS ТерминацииPassthrough.

  2. Небезопасный трафик:

    • Allow – автоматическое перенаправления с http на https происходить не будет,
    • Redirect – автоматическое перенаправление на https.

HTTPS-доступ с использованием собственных сертификатов

Загрузите имеющийся у вас сертификат в диалоге загрузки сертификатов.

При создании маршрута в поле TLS Сертификат можно указать добавленный сертификат. В течение 90 секунд он добавится к роуту.