Закрытие индексирования поиска сайта через Kubernetes HAProxy Ingress

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

В этой статье мы пойдем по процессу блокирования индексации вашего сайта на Kubernetes Ingress с использованием файла robots.txt, предотвращая поисковым ботам сканирование и индексацию вашего содержимого.

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

Для продолжения учебника, у вас должна быть базовая картина Kubernetes базовых объектов, ресурсов Ingress и официального контроллера HAProxy ingress. Вам также потребуется доступ к кластеру Kubernetes и необходимые разрешения для внесения изменений в конфигурацию.

Помните, что для целей этой статьи я предполагаю, что контроллер HAProxy ingress установлен какpredefined controller. иначе, если вы не выбрали HAProxy в качествеpredefined controller, вам must add the ingressClassName option to all Ingress code examples.

Шаг 1: Создание ресурса Ingress Kubernetes

В первой части нашего путешествия мы создадим небольшое ресурсы Ingress, чтобы продемонстрировать нашу службу за пределами кластера Kubernetes. Обратите внимание: на данный момент все веб-крады будут иметь доступ к службе. Чтобы применить нижеследующий код, используйте команду kubectl apply -f ingress.yaml.

YAML

 

Шаг 2: Измените конфигурацию Ingress

Файл robots.txt используется для управления той массой, которая индексирует документы. Его содержимое указывает, какие URL-адреса крады могут доступать к вашему веб-сайту.最基础的文件, который запрещает доступ к веб-сервису, выглядит так:

Plain Text

 

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

Plain Text

 

Annotations K8S регулируют все манипуляции с конфигурацией frontend/backend HAProxy для одного ресурса ingress. Полный список Annotations HAProxy можно найти в официальной документации на GitHub.

В нашем случае нам нужно использовать haproxy.org/backend-config-snippet с snippet HAProxy для блокирования индексации. чтобы это сделать, отредактируйте, откройте ваш ресурс YAML для ingress, и добавьте следующую Annotation к секции metadata:

YAML

 

Шаг 3: Примените изменения конфигурации

После изменения файла YAML для Ingress, сохраните его и примените его к кластеру Kubernetes с помощью команды kubectl: kubectl apply -f ingress.yaml.

Contроллер Ingress обнаружит изменения и обновит конфигурацию соответственно.

Шаг 4: Проверка Конфигурации

Просмотрите созданный файл robots.txt, чтобы убедиться, что защита от индексации работает корректно. Contроллер Ingress генерирует этот файл на основе аннотаций, которые вы предоставляете.

Получите внешний IP-адрес или домен, связанный с вашим ресурсом Ingress, и добавьте /robots.txt к URL. Пример:

Plain Text

 

Как мы можем видеть, ответ содержит файл robots.txt, который запрещает индексирование любыми поисковыми системами.

Шаг 5: Тест защиты от индексации

Чтобы убедиться, что поисковые системы не индексируют ваш сайт, вы можете выполнить поиск вашего сайта на популярных поисковых системах. Remember that search results may take some time to reflect changes, so the indexing status may not be fully updated right away.

Заключение

Примечания позволяют легко избежать индексации поисковыми системами при использовании HAProxy Kubernetes Ingress. Добавив соответствующую аннотацию к вашему ресурсу Ingress, вы можете запретить поисковым ботам каrawling и индексирование содержимого вашего сайта. Сходный подход может быть использован и с другими контроллерами ingress, такими как Nginx, Traefic и другими. Подобная аннотация также может быть использована для ресурсов K8S Gateway API, которые активно заменяют Ingress.

Как заключение, robots.txt является старинным способом для создателей сайтов указать, должны ли их сайты быть indexed various bots. Однако, оказалось, что AI-crawlers от large language model (LLM) companies frequently ignore the contents of robots.txt and crawl your site regardless. To avoid such situations, utilize password security, noindex, or enterprise load balancer features like HAProxy AI-crawler, which may be also configured as a K8S annotation.

Source:
https://dzone.com/articles/close-site-search-indexing-via-kubernetes-haproxy