Files
mdm-ordinis/ordinis-admin-ui/nginx.conf
T
Александр Зимин d5a747616a fix(admin-ui): envsubst FQDN с per-cluster DNS suffix
nginx resolver не использует search list, поэтому в proxy_pass нужен
FQDN. Cluster domain различается:
  - cluster.265 (staging): 265.local
  - srvaltum01 (prod):     altum.local
  - default kubespray:     cluster.local

Решение: nginx.conf — template с ${ORDINIS_NAMESPACE} и
${CLUSTER_DOMAIN}, обрабатывается официальным nginx entrypoint
(/docker-entrypoint.d/20-envsubst-on-templates.sh). Helm подставляет
ENV из fieldRef + values per-env.
2026-05-04 01:21:34 +03:00

40 lines
1.4 KiB
Nginx Configuration File

server {
listen 80;
server_name _;
# Resolver — coredns (10.233.0.3 на kubespray-кластерах). nodelocal-dns
# (169.254.25.10) при первом cold lookup отвечает SERVFAIL, поэтому
# обращаемся напрямую к ClusterDNS service.
resolver ${RESOLVER_IP} valid=30s ipv6=off;
# Real client IP behind ingress-nginx.
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
root /usr/share/nginx/html;
index index.html;
# GET → read-api, мутирующие → writer.
# FQDN в proxy_pass нужен потому что nginx resolver не использует search list.
# Namespace и cluster-domain инжектятся через ENV (см. admin-ui Deployment).
location /api/v1/ {
set $backend "ordinis-read-api.${ORDINIS_NAMESPACE}.svc.${CLUSTER_DOMAIN}";
if ($request_method ~ ^(POST|PUT|PATCH|DELETE)$) {
set $backend "ordinis-app.${ORDINIS_NAMESPACE}.svc.${CLUSTER_DOMAIN}";
}
proxy_pass http://$backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass_request_headers on;
}
# SPA history fallback.
location / {
try_files $uri $uri/ /index.html;
}
}