Как настроить собственный домен, SSL и CDN на платформе приложений

Как настроить собственный домен, SSL и CDN на платформе приложений


Введение

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

На DigitalOcean App Platform дает нам возможность бесшовно интегрировать ключевые функции, которые необходимы для предоставления первоклассного пользовательского опыта. Настройка пользовательских доменов, SSL-сертификатов и сети доставки контента (CDN) гарантирует, что наши приложения не только легко найти и им можно доверять, но также они быстры и безопасны, независимо от того, где находятся наши пользователи. Эти функции выходят за пределы технических требований; они являются неотъемлемой частью установления доверия к бренду, защиты данных пользователей и оптимизации глобальной производительности.

Этот урок проведет вас через настройку этих основных элементов на платформе приложений DigitalOcean, обеспечивая успешное развертывание вашего приложения с правильной инфраструктурой. С правильной конфигурацией вы не только улучшите пользовательский опыт, но и поддержите цели роста вашего бизнеса в условиях высокой конкуренции в цифровом пространстве.

Почему настраивать пользовательские домены, SSL и CDN?

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

Пользовательские домены позволяют представить профессиональную, брендированную идентичность вашим пользователям. Вместо того чтобы полагаться на общий или предоставленный платформой URL, пользовательский домен (например, www.yourcompany.com) сигнализирует о легитимности и надежности. Это особенно важно для приложений, ориентированных на клиентов, так как пользователи гораздо охотнее взаимодействуют с сайтом и доверяют ему, если он отображает последовательный бренд. Кроме того, пользовательские домены предпочитаются поисковыми системами, что может улучшить рейтинг вашего сайта и его обнаруживаемость.

SSL-сертификаты необходимы для защиты данных, передаваемых между вашими пользователями и вашим приложением. Включив HTTPS, SSL шифрует конфиденциальную информацию, такую как учетные данные для входа, данные о платежах и личные данные, защищая их от перехвата или подделки злонамеренными лицами. Помимо безопасности, SSL теперь является базовым ожиданием для пользователей и является фактором ранжирования для поисковых систем, таких как Google. Браузеры также помечают сайты без HTTPS как «Не защищено», что может отпугнуть потенциальных пользователей и нанести ущерб вашей репутации.

Системы доставки контента (CDN) значительно повышают производительность и надежность вашего приложения, распределяя статические ресурсы (такие как изображения, скрипты и таблицы стилей) по глобальной сети крайних серверов. Это означает, что пользователи по всему миру испытывают более быстрое время загрузки, уменьшенную задержку и большую устойчивость к скачкам трафика или сбоям. CDN также помогают разгрузить трафик с вашего исходного сервера, улучшая масштабируемость и снижая затраты на инфраструктуру. Для динамических приложений правильная настройка CDN может дополнительно оптимизировать доставку, кэшируя часто используемые данные и интеллектуально перенаправляя запросы.

Настройка пользовательских доменов, SSL и CDN — это не только техническое соответствие, но и создание безопасного, высокопроизводительного и надежного приложения, которое может расти вместе с вашим бизнесом и предоставлять пользователям повсеместно бесперебойный опыт.

Ключевые выводы

Следуя этому руководству, вы:

  • Узнайте, как настроить пользовательские домены, SSL-сертификаты и CDN на платформе приложений DigitalOcean.
  • Поймите влияние этих функций на безопасность, скорость и надежность вашего приложения.
  • Узнайте, как эти конфигурации могут улучшить SEO вашего приложения и общий пользовательский опыт.

Предварительные требования

Прежде чем мы начнем, давайте убедимся, что вы готовы следовать за нами:

  • Аккаунт на DigitalOcean: Если у вас его еще нет, создайте аккаунт на DigitalOcean, чтобы начать.
  • Развернутое приложение на платформе приложений DigitalOcean: В этом руководстве предполагается, что вы уже развернули своё приложение с помощью платформы приложений DigitalOcean. Если нет, мы рекомендуем сначала пройти урок «С чего начать».
  • Пользовательский домен: Вы должны владеть доменом. Например, вместо использования поддомена, такого как myapp.ondigitalocean.app, мы настроим что-то вроде www.myapp.com.
  • Доступ к панели управления вашим приложением DigitalOcean App Platform: У вас должен быть полный доступ (роль Владелец или Участник) к настройкам вашего приложения на платформе.

Контекст и фон

Платформа приложений DigitalOcean

Платформа приложений DigitalOcean — это полностью управляемое решение для развертывания и масштабирования приложений. От управления жизненным циклом вашего приложения до интеграции таких важных функций, как пользовательские домены, SSL и CDN, DigitalOcean позволяет командам сосредоточиться на создании своего продукта, а не на управлении инфраструктурой.

И поскольку DigitalOcean управляет тяжелой работой, эти функции имеют отличные настройки с нуля. Вам не придется тратить часы на настройку или обслуживание серверов; за это все отвечает компания, что является огромным преимуществом для продуктовых команд с ограниченными ресурсами.

Почему собственный домен?

Пользовательский домен — это больше, чем просто URL. Это важный шаг в установлении вашего бренда. Когда вы запускаете свой продукт с использованием собственного домена, например www.myapp.com, это сигнализирует о профессионализме и помогает укрепить доверие. Это создает доверие, что особенно важно, если вы имеете дело с конфиденциальными данными или проводите какие-либо транзакции.

Кроме того, с точки зрения SEO, наличие собственного домена является необходимостью. Поисковые системы, включая Google, отдают предпочтение собственным доменам по сравнению с подсайтами при ранжировании сайтов, поэтому это вопрос не только брендинга, но и видимости.

Почему SSL (Secure Sockets Layer)?

Безопасность больше не является опцией. Пользователи ожидают, что их данные будут защищены, особенно когда речь идет о учетных данных для входа, информации о кредитных картах или других конфиденциальных данных. Включение SSL не только гарантирует, что весь трафик между вашим приложением и его пользователями зашифрован, но и то, что ваши пользователи могут доверять вашему приложению.

Платформа приложений DigitalOcean автоматически предоставляет и управляет SSL-сертификатами для ваших пользовательских доменов, так что вам не нужно беспокоиться о ручной настройке или обновлении.

На самом деле, SSL стал сигналом доверия для Google. Они помечают сайты без HTTPS как небезопасные, что может негативно повлиять на ваш трафик и репутацию. Поэтому включение SSL — это не только мера безопасности; это необходимость для бизнеса.

Что такое CDN и почему это важно?

Сеть доставки контента (CDN) ускоряет вашу приложение, кэшируя и предоставляя контент, такой как изображения, видео и другие статические файлы, с серверов, расположенных ближе к вашим пользователям. Таким образом, независимо от того, находятся ли они в Нью-Йорке, Сиднее или Токио, контент вашего приложения загружается быстрее, что означает более быстрое время загрузки и в целом лучшее качество использования.

С платформой приложений DigitalOcean статическое содержимое автоматически кэшируется на серверах CDN, что помогает вашему приложению работать лучше для пользователей по всему миру. Для динамических приложений вы можете включить кэширование, установив заголовок Cache-Control в ответах вашего приложения, что помогает быстрее доставлять часто запрашиваемые данные.

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

Пошаговое руководство

Давайте перейдем к процессу настройки. В этом разделе мы подробно рассмотрим, как настроить пользовательский домен, включить SSL и настроить CDN на платформе приложений DigitalOcean.

Настройка пользовательского домена

Мы проведем вас через процесс подключения вашего пользовательского домена (например, www.myapp.com) к вашему приложению на DigitalOcean App Platform. Этот шаг гарантирует, что ваше приложение будет доступно через брендированный URL, что повысит доверие, SEO и профессионализм.

В зависимости от того, как вы управляете DNS вашего домена, у вас есть следующие варианты настройки вашего домена с DigitalOcean:

Вариант 1: Настройка управляемого DNS от DigitalOcean

Этот вариант предназначен для доменов, зарегистрированных у внешнего регистратора, но делегированных на именные серверы DigitalOcean (ns1.linux-console.net, ns2.linux-console.net и т.д.).

В этой конфигурации вы передаете управление DNS компании DigitalOcean, обновив серверы имен вашего домена у регистратора. Затем DigitalOcean управляет всеми записями DNS, включая те, которые необходимы для перенаправления вашего домена на ваше приложение. Этот подход минимизирует ручную настройку DNS.

  1. Войдите в свою доменную регистратуру (где вы приобрели свой домен).

  2. Обновите серверы имен вашего домена на:

      ns1.linux-console.net
  3. ns2.linux-console.net
    ns3.linux-console.net
  4. Перейдите на Панель управления приложениями, откройте Настройки → Домены → Правка вашего приложения и нажмите Добавить домен.

  5. Введите ваше доменное имя (например, www.myapp.com), затем выберите Мы управляем вашим доменом.

  6. Подтвердите и нажмите Добавить домен.

  7. DigitalOcean автоматически создаст необходимые DNS-записи для вашего приложения.

Примечание: Пропаганда DNS после изменения серверов имен может занять до 72 часов

Вариант 2: Ручная настройка DNS с внешним провайдером DNS

Этот вариант предназначен для доменов, DNS которых размещен у внешнего провайдера (например, GoDaddy, Cloudflare), где вы не делегируете серверы имен DigitalOcean.

Вы вручную добавите записи DNS у вашего провайдера DNS, чтобы направить ваш домен или поддомен на ваше приложение DigitalOcean.

  1. В вашей панели управления приложением перейдите к Настройки → Домены → Изменить и нажмите ‘Добавить домен’.

  2. Введите ваш домен (например, www.myapp.com), а затем выберите Вы управляете своим доменом.

  3. DigitalOcean предоставит целевой CNAME-запись (например, your-app.ondigitalocean.app).

  4. Войдите на панель управления вашего провайдера DNS.

  5. Добавьте запись CNAME:

    • Хост: www (или ваш поддомен)
  6. Значение: your-app.ondigitalocean.app
  7. Сохраните запись DNS.

  8. Вернитесь на DigitalOcean и подтвердите добавление домена.

  9. DigitalOcean проверит DNS-запись.

Примечание: Распространение DNS для изменений CNAME обычно занимает от нескольких минут до нескольких часов.

Вариант 3: Автоматизация через CLI или API (Расширенный)

Этот вариант подходит для разработчиков или команд, автоматизирующих развертывания через CLI (doctl) или API.

Вы можете добавить домен к приложению, используя команду обновления приложения CLI или конечную точку обновления приложения API. Чтобы добавить домен, обновите спецификацию приложения с характеристиками домена и отправьте спецификацию с помощью следующей команды или конечной точки. Спецификация приложения должна полностью определять все конфигурации вашего приложения. Мы рекомендуем скачать текущую спецификацию вашего приложения из панели управления, API или CLI и изменить ее, чтобы включить домен.

Пример использования doctl

Следующий пример обновляет приложение с идентификатором f81d4fae-7dec-11d0-a765-00a0c91e6bf6, используя спецификацию приложения, расположенную в каталоге /src/your-app.yaml. Кроме того, команда возвращает идентификатор обновлённого приложения, информацию о входе и дату создания:

doctl apps update f81d4fae-7dec-11d0-a765-00a0c91e6bf6 --spec src/your-app.yaml --format ID,DefaultIngress,Created 

Пример использования API

curl -X PUT  -H "Content-Type: application/json"  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN"  "https://api.linux-console.net/v2/apps/{id}"  -d '{"alerts":[{"rule":"DEPLOYMENT_FAILED"},{"rule":"DOMAIN_FAILED"}],"domains":[{"domain":"example.com","type":"PRIMARY","zone":"example.com"}],"envs":[{"key":"API_KEY","scope":"RUN_AND_BUILD_TIME","type":"SECRET","value":"EV[1:zqiRIeaaYK/NqctZDYzy6t0pTrtRDez8:wqGpZRrsKN5nPhWQrS479cfBiXT0WQ==]"}],"features":["buildpack-stack=ubuntu-22"],"ingress":{},"name":"example-app","region":"nyc","services":[{"autoscaling":{"max_instance_count":4,"metrics":{"cpu":{"percent":70}},"min_instance_count":2},"git":{"branch":"main","repo_clone_url":"https://github.com/digitalocean/sample-nodejs.git"},"internal_ports":[8080],"log_destinations":[{"name":"your_log_consumer_name","open_search":{"endpoint":"logs.example.com:12345","basic_auth":{"user":"doadmin","password":"1234567890abcdef"},"index_name":"example-index","cluster_name":"example-cluster"}}],"name":"sample-nodejs","run_command":"yarn start","source_dir":"/"}]}' 

SSL для вашего пользовательского домена

Как только ваш пользовательский домен будет правильно настроен на платформе приложений DigitalOcean, SSL/TLS автоматически предоставляется через Let’s Encrypt. Это означает, что вам не нужно вручную приобретать или устанавливать SSL-сертификат, и DigitalOcean сделает это за вас.

Кроме того, App Platform автоматически обновляет все входящие HTTP-запросы до HTTPS, что означает, что любой трафик, отправленный по HTTP, будет перенаправлен на HTTPS, обеспечивая безопасное соединение для всех пользователей.

Вы узнаете, что SSL активен, когда:

  • Ваше приложение доступно по https, например https://www.myapp.com.
  • Иконка замка появляется в адресной строке браузера.
  • Ваше соединение помечено как безопасное браузером.

Важное примечание: Платформа приложений DigitalOcean автоматически выделяет SSL сертификаты для ваших пользовательских доменов и перенаправляет все HTTP запросы на HTTPS. Однако она не устанавливает заголовки HTTP Strict-Transport-Security (HSTS) для пользовательских доменов автоматически. Чтобы гарантировать, что браузеры принудительно используют только HTTPS-соединения (включая первый визит), вы должны настроить заголовки HSTS в ответах вашего приложения.

Приложения, размещенные на домене по умолчанию .ondigitalocean.app, ведут себя так, будто HSTS включен, потому что TLD .app включен в списки предзагрузки HSTS. Это встроенное принудительное применение HSTS не распространяется на пользовательские домены, если вы явно не добавите необходимые заголовки.

Это автоматическое предоставление SSL не только шифрует все коммуникации между вашими пользователями и вашим приложением, защищая чувствительные данные, но и повышает надежность вашего сайта и его рейтинг в поисковых системах, так как HTTPS является признанным сигналом SEO.

Примечание: Включение SSL может занять несколько минут после обновления DNS. Если вы не видите HTTPS сразу, проверьте настройки DNS, обновите панель управления DigitalOcean App Platform и подождите, пока изменения распространятся.

Настройка CDN для вашего приложения

Платформа приложений DigitalOcean включает встроенную CDN (сеть доставки контента), управляемую Cloudflare, которая автоматически включена. Вы можете настроить ее поведение, установив соответствующие заголовки кэширования HTTP в ответах вашего приложения.

Поведение кэширования по умолчанию

Платформа приложений обрабатывает кеширование по-разному в зависимости от структуры вашего приложения:

  • Статические сайты: Кэшируются по умолчанию на крайних серверах CDN на 24 часа и в браузере на 10 секунд. Дополнительная настройка не требуется, если вы не хотите изменить это поведение.
  • Динамические услуги (API, веб-серверы): По умолчанию кэширование не применяется. Чтобы включить кэширование, вы должны добавить соответствующие заголовки Cache-Control в ваши ответы сервера.

Это поведение по умолчанию балансирует производительность и актуальность для статических сайтов, одновременно гарантируя, что динамический контент предоставляется так, как ожидается.

Настройка кеширования с помощью заголовков Cache-Control

Вы можете контролировать, как долго активы кэшируются как браузерами, так и CDN, устанавливая заголовок Cache-Control.

Примеры:

  • Кэшировать статические ресурсы на 7 дней:
Cache-Control: public, max-age=604800 
  • Избегайте кэширования динамического контента:
Cache-Control: no-store 

Общие случаи использования

Случай использования Пример заголовка Поведение
Кэшируйте статические изображения на 7 дней
Cache-Control: public, max-age=604800
CDN и браузеры будут кэшировать в течение 7 дней
Кэшировать файлы CSS/JS на 1 час
Cache-Control: public, max-age=3600
Кэш на 1 час, подходит для часто обновляемых ресурсов
Предотвратите кэширование для чувствительных или данных в реальном времени
Cache-Control: no-store
Содержимое никогда не кэшируется, идеально подходит для панелей мониторинга или пользовательских профилей.

Вам нужно будет настроить это в коде вашего приложения. Например:

  • Node.js (Express):
res.set('Cache-Control', 'public, max-age=86400'); // 1 day 
  • Иди :
w.Header().Set("Cache-Control", "public, max-age=86400") 
  • Flask (Python):
@app.after_request def add_header(response):     response.headers['Cache-Control'] = 'public, max-age=86400'     return response 

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

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

Отключение кэширования на краю

В некоторых случаях, таких как API или данные в реальном времени, вы можете полностью отключить кэширование CDN. Это можно сделать в спецификационном файле вашего приложения, используя опцию disable_edge_cache.

Пример :

services:   - name: your-service-name     disable_edge_cache: true 

Установка этого параметра отключает все кэширование на краю для указанной службы, обеспечивая получение каждого запроса свежим с источника.

Чтобы снова включить кеширование позже, либо удалите эту строку, либо установите значение false.

Примечание: Если вы не используете YAML напрямую, вы можете экспортировать спецификацию вашего приложения из панели управления, внести это изменение и развернуть заново с помощью doctl apps update.

Мониторинг и оптимизация

После настройки убедитесь, что ваши заголовки кэша работают следующим образом:

  • Проверка заголовков ответа в инструментах разработчика вашего браузера или с помощью curl.
  • Ищем заголовки, такие как Cache-Control, CF-Cache-Status и Age.
  • Используя инструменты такие как PageSpeed Insights, GTmetrix или Pingdom.

Эти инструменты помогают оценивать эффективность вашего кеша и скорость загрузки по всему миру.

Для получения дополнительной информации о кэшировании CDN, пожалуйста, обратитесь к этой документации по кэшированию контента для улучшения производительности приложения.

Заключение

Настройка пользовательского домена, SSL-сертификатов и CDN на App Platform от DigitalOcean обеспечивает безопасность, скорость и профессионализм вашего приложения. Эти функции помогают укрепить доверие, улучшить SEO и обеспечить лучший пользовательский опыт — без hassles ручного управления сервером. Примените эти лучшие практики, чтобы подготовить ваше приложение к успеху.

Дальнейшее чтение и связанные учебники

Чтобы углубить свои знания и изучить больше способов использовать платформу приложений DigitalOcean, ознакомьтесь с этими связанными учебными пособиями от сообщества DigitalOcean:

  • Платформа приложений DigitalOcean против DOKS против капель
  • Отправка логов платформы приложения DO в управляемый OpenSearch DO
  • Лучшие практики для многократной среды платформы приложений
  • Устранение проблем с задержкой на платформе приложений

Для получения дополнительных учебников и руководств посетите учебные пособия сообщества DigitalOcean.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *