На самом деле ресурс Ingress имеет строго определенные предпосылки для соответствующей спецификации API . Вы можете исключить поле rules:
из общей конфигурации, однако следует обязательно указать backend:
, чтобы Контроллер входа Nginx мог направлять сетевой трафик к целевой конечной точке, если правила не объявлены или не соответствуют.
Всякий раз, когда вы создаете какие-либо конкретные настройки для контроллера Nginx Ingress либо через Аннотации или ConfigMaps , оба варианта выполняют одну и ту же работу по применению некоторой конкретной конфигурации к базовому nginx.conf
файл, который находится на nginx-ingress-controller
Pod. Это означает, что контроллер Ingress применяет блоки server {}
и location {}
к соответствующему модулю веб-сервера Nginx для определенного хоста:
server {
server_name www.example.com ;
listen 80;
listen [::]:80;
set $proxy_upstream_name "-";
listen 443 ssl http2;
listen [::]:443 ssl http2;
.............
location / {
set $namespace "default";
set $ingress_name "example-redirect";
set $service_name "example";
set $service_port "http";
set $location_path "/";
......................
}
}
Поэтому я полагаю, что вы можете захватить файл nginx.conf
на основе конфигурации ресурса Ingress и затем применить его независимо внутри модуля контроллера Ingress.
Я предполагаю, что вы также можете рассмотреть возможность использования nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
аннотации для достижения цели в текущем сценарии.