Como usar o Ngnix como proxy reverso para acessar o OpenShift (OKD) 4.X?

Como usar o Ngnix como proxy reverso para acessar o OpenShift (OKD) 4.X?

Como usar o Ngnix como proxy reverso para acessar o OpenShift (OKD) 4.X?

Eu tentei centenas de configurações para o proxy reverso (Nginx) e todas falharam com o erro"O aplicativo não está disponível"quando acessamos ooauth-openshift.apps.mbr.some.dmrota.

OBSERVAÇÃO:Este problema não ocorre se acessarmos esta rota diretamente (sem utilizar Reverse Proxy).Talvez alguma informação necessária para que a rota seja resolvida não esteja sendo enviada.

Este é o modelo de configuração básica que estamos usando...

server {
    access_log /var/log/nginx/apps.mbr.some.dm-access.log;
    error_log /var/log/nginx/apps.mbr.some.dm-error.log;
    server_name ~^(?<subdomain>.+)\.apps\.mbr\.some\.dm$;

    location / {
        proxy_pass https://10.2.0.18:443;
        proxy_set_header Host $subdomain.apps.mbr.some.dm;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
    }

    listen 443;
    ssl_certificate /etc/letsencrypt/live/apps.mbr.some.dm/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/apps.mbr.some.dm/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

Também testamos esses parâmetros e tivemos alguns problemas como você pode ver abaixo...

server {
    [...]
    location / {
        [...]
        proxy_ssl_certificate /etc/nginx/backend_ss_certs/apps.mbr.some.dm.crt;
        proxy_ssl_certificate_key /etc/nginx/backend_ss_certs/apps.mbr.some.dm.key;
        proxy_ssl_trusted_certificate /etc/nginx/backend_ss_certs/apps.mbr.some.dm.crt.key.pem;
        proxy_ssl_ciphers HIGH:!aNULL:!MD5;
        proxy_ssl_protocols TLSv1.2 TLSv1.3;
        proxy_ssl_server_name on;
        proxy_ssl_session_reuse on;
        proxy_ssl_verify on;
        [...]
    }
    [...]
}

Os certificadosapps.mbr.some.dm.crt,apps.mbr.some.dm.key,apps.mbr.some.dm.crt.key.pemsão os certificados autoassinados usados ​​pelo OpenShift (OKD) para permitir acesso aos recursos (HTTPS). Porém se tentarmos usar esses certificados com o proxy reverso (Nginx) acontece o seguinte erro ("Bad Gateway")...

2021/07/22 17:36:11 [error] 6999#6999: *1 upstream SSL certificate verify error: (21:unable to verify the first certificate) while SSL handshaking to upstream, client: 177.25.231.233, server: ~^(?<subdomain>.+)\.apps\.mbr\.brlight\.net$, request: "GET /favicon.ico HTTP/1.1", upstream: "https://10.2.0.18:443/favicon.ico", host: "oauth-openshift.apps.mbr.some.dm", referrer: "https://oauth-openshift.apps.mbr.some.dm/oauth/authorize?client_id=console&redirect_uri=https%3A%2F%2Fconsole-openshift-console.apps.mbr.some.dm%2Fauth%2Fcallback&response_type=code&scope=user%3Afull&state=ff6f3064"

NOTA:Nós testamos oapps.mbr.some.dm.crteapps.mbr.some.dm.crt.key.pemcertificados usandoondulaçãoe ambos funcionaram perfeitamente.


MAIS:Não conseguimos definir uma forma de diagnosticar/observar (logs) sobre o que dá errado quando a requisição chega na rotaoauth-openshift.apps.mbr.some.dm. Acho que isso nos ajudaria a descobrir o que está errado.

informação relacionada