Премиальное программное обеспечение и практические уроки
Cloudflare использует Workers и Pages для развертывания обратного прокси-сервера на сайте
использовать Cloudflare Рабочие и страницыПроксиИспользование обратного прокси-сервера для вашего сайта — очень практичный способ ускорить доступ, обойти ограничения или скрыть адрес вашего исходного сервера. Ниже представлено краткое руководство, показывающее, как использовать оба варианта для реализации функции обратного прокси-сервера. Весь этот процесс устраняет необходимость в хостинге собственных серверов и может быть реализован с использованием возможностей периферийных вычислений Cloudflare.
Cloudflare — это не просто поставщик услуг CDN, а высокопроизводительная, безопасная и надежная глобальная сетевая платформа с низкой задержкой.
Используя свою глобально распределённую архитектуру периферийных вычислений, Cloudflare эффективно ускоряет доставку статического и динамического контента, предоставляя точные стратегии кэширования для оптимизации использования полосы пропускания. Кроме того, встроенная защита от неограниченного количества DDoS-атак эффективно защищает от всех типов кибератак, обеспечивая стабильность и безопасность бизнеса.
Сегодня мы воспользуемся Cloudflare Workers и Cloudflare Pages для создания эффективной службы обратного прокси-сервера, которая позволит в полной мере использовать преимущества Cloudflare в распределенных вычислениях и ускорении периферийных сетей.
Подготовка перед настройкой обратного прокси-сервера сайта
Аккаунт Cloudflare
Если у вас еще нет учетной записи, пожалуйста, посетитеCloudflareЗарегистрироваться!
Процесс регистрации учетной записи Cloudflare относительно прост и может быть выполнен с использованием учетной записи Google, учетной записи Apple или пользовательского адреса электронной почты.
Рекомендуется использовать Google для регистрации. Аккаунты Google охватывают практически все популярные зарубежные сайты и могут быть использованы для входа. Если у вас ещё нет аккаунта Google, поторопитесь и зарегистрируйте его!
Активировать доменное имя
Вам необходимо перенести доменное имя в Cloudflare. Если вы не знаете, как активировать доменное имя в Cloudflare, вот как это сделать.
Для активации Cloudflare необходимо обновить ваши серверы имен.
Добавьте новое доменное имя в бэкэнд Cloudflare, введите доменное имя, выберите Быстрое сканирование записей DNS по умолчанию и нажмите Продолжить!
Выберите бесплатный план и доменное имя успешно добавлено!
Затем войдите на сайт, на котором зарегистрирован ваш домен. Получив доступ к бэкенду, найдите и отключите параметр «Безопасность DNS» (DNSSEC). Если он отключен по умолчанию, проигнорируйте его. Вы сможете включить его позже через Cloudflare.
Замените текущие серверы имен на те, которые назначены Cloudflare.
Примечание: Каждому доменному имени назначен отдельный сервер имён. Удалите все лишние серверы имён и заполните поля «Сервер имён 1» и «Сервер имён 2» для серверов имён Cloudflare.
Возьмем в качестве примера namesilo:
Нажмите на доменное имя в панели управления, чтобы открыть страницу операций с доменным именем и отредактировать сервер имен. Удалите содержимое сервера имен.
После изменения сервера имён сохраните изменения. В некоторых регионах дата вступления в силу может быть позже, так что пока об этом можно не беспокоиться.
В бэкенде Cloudflare, если доменное имя имеет статус «активно», это означает, что оно вступило в силу. Если сервер имён недействителен или изменение некорректно, будет указано, что сервер имён недействителен.
Аккаунт GitHub
Если у вас еще нет учетной записи, пожалуйста, посетитеGitHubЗарегистрироваться!
Для создания учётной записи на GitHub вы можете зарегистрироваться только с помощью адреса электронной почты. Рекомендуется использовать Gmail.
Получите проверочный код на свой почтовый ящик. После его заполнения регистрация вашей учётной записи будет успешной!
Разверните обратный прокси-сервер веб-сайта с помощью Workers и Pages
Далее мы используем Workers и Pages для развертывания обратного прокси-сервера на сайте. Существует два способа развертывания обратного прокси-сервера на сайте. Давайте попрактикуемся в этом процессе ниже.
Меры предосторожности
- Метод Workers: Скопируйте _worker.js, сохраните его в Cloudflare и разверните.
- Метод Pages: Создайте форк репозитория и подключите GitHub к Cloudflare для развертывания в один клик.
- Workers против Pages: Workers лучше подходит для чисто динамических прокси-серверов, а Pages — для сочетания статического контента и динамической функциональности. Для простого обратного прокси-сервера Workers более прост.
- Бесплатная квота: бесплатный уровень Cloudflare предлагает 100 000 запросов Worker в день, и у Pages есть похожий лимит, которого достаточно для личного использования, но для больших объемов трафика может потребоваться платный тарифный план.
- Доступ внутри страны: домены works.dev и pages.dev могут быть ограничены в материковом Китае. Рекомендуется привязать собственное доменное имя.
- Безопасность: убедитесь, что целевой веб-сайт разрешает прокси-доступ, чтобы избежать нарушения условий обслуживания.
Использование Cloudflare Workers для реализации обратного прокси-сервера
Cloudflare Workers — это бессерверные скрипты, которые работают на глобальных периферийных узлах Cloudflare и легко обрабатывают HTTP-запросы и пересылают их на целевой веб-сайт.
Шаг 1: Зарегистрируйтесь и войдите в Cloudflare
Если у вас еще нет учетной записи Cloudflare, зарегистрируйте ее на официальном сайте, а затем войдите в систему.
Шаг 2: Создание работника
На панели управления Cloudflare нажмите «Workers and Pages» в разделе «Compute (Workers)» слева, затем выберите «Quick Start».
Дайте вашему Worker имя (по умолчанию будет сгенерировано доменное имя, похожее на yourname.workers.dev).
После ввода имени нажмите «Развернуть», чтобы перейти на страницу развертывания.
Нажмите «Изменить код», чтобы войти в редактор Worker, удалите код по умолчанию и вставьте следующий простой скрипт обратного прокси.
Шаг 3: Создайте скрипт обратного прокси-сервера
Создайте собственный Java-скрипт. Вот пример скрипта обратного прокси:
addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)); }); async function handleRequest(request) { const url = new URL(request.url); // Целевой веб-сайт, на который пересылается запрос const targetHost = 'example.com'; // Замените на доменное имя, которое вы хотите проксировать url.hostname = targetHost; // Создайте новый запрос const newRequest = new Request(url, request); return await fetch(newRequest); }
Этот скрипт перенаправит все запросы, отправленные вашему Worker, на example.com.
Шаг 4: Сохраните развертывание
Нажмите синюю кнопку «Развернуть» в правом верхнем углу, и ваш Worker будет доступен онлайн. https://your-worker-name.yourname.workers.dev Посетите его.
Шаг 5: Настройте доменное имя
Поскольку доменное имя works.dev недоступно в стране, вам необходимо настроить новое доменное имя.
В разделе «Параметры конфигурации» в меню «Домены и маршруты» нажмите кнопку «Добавить».
Выберите «Пользовательский домен», введите доменное имя и сохраните. Доменное имя успешно добавлено и к нему можно получить доступ, используя новое доменное имя.
На этом этапе реализована функция обратного прокси-сервера с использованием Cloudflare Workers. Она очень проста. Далее вы можете использовать Pages для развертывания обратного прокси-сервера на сайте.
Разверните обратный прокси-сервер веб-сайта с помощью Cloudflare Pages
Cloudflare Pages — это платформа для хостинга статических веб-сайтов, сочетающая автоматическое развертывание с Git-репозиториями, что делает её подходящей для быстрого запуска front-end-проектов. Недавно в неё были добавлены функции (по сути, вариант Workers), позволяющие динамически выполнять код на периферии.
Cloudflare Pages в основном используется для размещения статических веб-сайтов, но в сочетании с Functions (основанными на функциях Workers) он также может выполнять функцию обратного прокси-сервера.
Давайте начнем развертывание обратного прокси-сервера с использованием Cloudflare Pages.
Шаг 1: Создайте проект Pages
На панели управления Cloudflare в разделе «Workers and Pages» нажмите «Create», затем выберите «Pages» и нажмите «Connect to Git».
Подключите свой репозиторий GitHub или GitLab (вы можете создать простой пустой статический проект, например, только с файлом index.html).
Шаг 2: Подключитесь к репозиторию
В качестве примера возьмём GitHub. Для начала вам нужно создать проект на GitHub.
Создайте репозиторий на Github и добавьте код, войдите в систему. Гитхаб Затем, как показано на рисунке ниже, нажмите «Создать репозиторий», чтобы создать частный репозиторий с именем Cloudflare Pages.
Обратите внимание, что при создании нового репозитория необходимо выбрать приватный вариант, в противном случае к нему сможет получить доступ любой желающий.
Затем создайте новый файл. Нажмите «Создать новый файл», чтобы создать файл.
Затем создайте файл _worker.js и скопируйте следующий код. Измените код в пятой строке, заключенной в одинарные кавычки, на веб-сайт, который вы хотите использовать для обратного прокси-сервера. Затем сохраните и закоммитьте изменения.
В коде JS обратного прокси будьте внимательны и не добавляйте к доменному имени такие символы, как https и http.
export default { async fetch(request, env) { let url = new URL(request.url); if (url.pathname.startsWith('/')) { url.hostname = 'Обратный адрес' let new_request = new Request(url, request); return fetch(new_request); } return env.ASSETS.fetch(request); }, };
Вернувшись на страницы Cloudflare, выберите GitHub и нажмите кнопку «Подключиться к GitHub».
Страница перейдет на Github и нажмет кнопку «Установить и авторизовать».
Введите пароль для подключения. После успешного подключения вернитесь на страницы Cloudflare.
После выбора репозитория нажмите кнопку «Начать установку».
На странице «Настройка сборки и развертывания» вы можете изменить имя проекта или оставить его по умолчанию. Нажмите «Сохранить и развернуть».
Многие терпят неудачу, когда впервые приступают к развертыванию.
Это связано с тем, что версия системы сборки Cloudflare Pages была обновлена до версии 2. В настройках проекта измените версию системы сборки на v1, а затем выполните повторное развертывание, чтобы всё прошло успешно!
После успешного развертывания вы можете привязать отдельное доменное имя к пользовательскому домену.
Теперь обратный прокси-сервер Cloudflare Pages настроен. Всё очень просто, не правда ли?
Сравнение различий, преимуществ и недостатков развертывания обратных прокси-серверов с использованием Workers и Pages
Выберите сценарий «Работники»:
Требуются мощные возможности обратного прокси-сервера, такие как:
- Измените все типы содержимого ответа (HTML, XML, JSON и т. д.).
- Обработка сложных правил замены или динамической маршрутизации.
- Точно контролируйте заголовки ответов или политики кэширования.
Требования к производительности высоки, и вся логика должна быть реализована на стороне сервера.
Проекты, включающие периферийные вычисления или требующие глобальных ответов с малой задержкой.
Выберите сценарий страниц:
Требования к обратному прокси-серверу просты: необходимо только проксировать HTML и выполнять небольшой объем замен.
- Проект в основном представляет собой статический веб-сайт только с простым обратным прокси-сервером или перенаправлением.
- Не хотите дополнительных затрат и просто положитесь на бесплатную квоту.
- Команда разработчиков знакома с разработкой front-end и предпочитает статическое развертывание файлов.
Примените несколько правил замены контента (включая заголовки, URL-адреса, изображения и т. д.). Ниже приведены рекомендации по результатам сравнения:
- Рабочие:
Преимущества: Он идеально реализует ваши скрипты и выполняет все замены прямо на сервере. Поддерживает регулярные выражения и различные типы контента, а также обеспечивает более высокую производительность и удобство использования.
Рекомендуемая причина: если ваши потребности включают сложные правила замены (множественные совпадения регулярных выражений) и переписывание URL, то Workers подойдет вам больше. - Страницы:
Ограничения: замена может быть достигнута только с помощью клиентского JS, который имеет низкую производительность и не может обрабатывать не-HTML-контент или заголовки ответов.
Применимость: если у вас ограниченный бюджет и вы хотите проксировать только HTML, вы можете использовать его, но опыт использования не такой хороший, как у Workers.
Рекомендуемое решение: используйте Cloudflare Workers. Он полностью удовлетворяет ваши потребности в обратном прокси-сервере и замене контента, обеспечивая лучшую производительность и гибкость.