идеи закончились
                  
                  
                  
                  
                  
                  есть внешний домен, не относящийся к куберу
                  
                  
                  например: external.domain.com
                  
                  
                  и внешний домен, на котором крутится приложение: app.domain.com
                  
                  
                  
                  
                  
                  дело в том, что при проксировании с external.domain.com на app.domain.com получаю 404
                  
                  
                  есть такой нжинкс конфиг на внешней проксе:
                  
                  
                  server {
                  
                  
                      listen 80;
                  
                  
                  
                  
                  
                      server_name external.domain.com;
                  
                  
                  
                  
                  
                      proxy_ssl_verify  off;
                  
                  
                      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_set_header  X-M-D             2;
                  
                  
                      proxy_set_header  X-M-D-Proto       $http_x_forwarded_proto;
                  
                  
                      proxy_read_timeout                  30;
                  
                  
                      proxy_cookie_domain t.domain.com   $host;
                  
                  
                  
                  
                  
                      location ~ ^/folder/click/?$ { proxy_pass https://app.domain.com/folder/click$is_args$args; resolver 8.8.8.8 8.8.4.4; }
                  
                  
                      location / {
                  
                  
                          proxy_intercept_errors on;
                  
                  
                          error_page 500 501 502 503 504 505 506 507 508 509 510 511 = @errors;
                  
                  
                          proxy_pass https://t.domain.com/;
                  
                  
                      }
                  
                  
                  }
                  
                  
                  при использовании такой урлы получаю 404:
                  
                  
                  https://external.domain.com/folder/click?cnv_id=1234567890123456789012345678901234567890&dph=1
                  
                  
                  
                  
                  
                  ожидаю получить проксирование на app.domain.com и увидеть Success строку
                  
                  
                  
                  
                  
                  хрень в том, что если напрямую запросить эту урлу на домене сервиса - работает
                  
                  
                  множество доменов которые работают с этим сервисом, который находится не в кубере(поднято два прода, один вне кубера, один в кубере) - работает
                  
                  
                  
                  
                  
                  у меня стойкое ощущение что я что-то не учел в nginx ingress controller-е
                  
                  
                  его configmap такой на данный момент:
                  
                  
                  configmap:
                  
                  
                   data:
                  
                  
                    worker-processes: auto
                  
                  
                    max-worker-connections: "4096"
                  
                  
                    server-tokens: "false"
                  
                  
                    disable-access-log: "false"
                  
                  
                    use-gzip: "false"
                  
                  
                    hsts: "false"
                  
                  
                    # Work around for HTTP->HTTPS redirect not working when using the PROXY protocol:
                  
                  
                    # https://github.com/kubernetes/ingress-nginx/issues/2724
                  
                  
                    # It works by getting Nginx to listen on port 8080 on top of the standard 80 and 443,
                  
                  
                    # and making any requests sent to port 8080 be reponded do by this code, rather than
                  
                  
                    # the normal port 80 handling.
                  
                  
                    ssl-redirect: "false"
                  
                  
                    http-snippet: |
                  
                  
                      map true $pass_access_scheme {
                  
                  
                        default "https";
                  
                  
                      }
                  
                  
                      map true $pass_port {
                  
                  
                        default 443;
                  
                  
                      }
                  
                  
                  
                  
                  
                      server {
                  
                  
                        listen 8080 proxy_protocol;
                  
                  
                        return 308 https://$host$request_uri;
                  
                  
                      }
                  
                  
                    use-forwarded-headers: "true"
                  
                  
                    compute-full-forwarded-for: "true"
                  
                  
                    enable-underscores-in-headers: "true"
                  
                  
                    use-proxy-protocol: "true"
                  
                  
                
TL;DR
Могу предположить, что из-за директивы proxy_set_header host $host В ингресс приходи запрос на домен external.domain.com, который не слушается ингрессом. Попробуй в локейшин с проксипасом добавить proxy_set_header host app.domain.com
Обсуждают сегодня