如何使用 Ngnix 作为反向代理访问 OpenShift (OKD) 4.X?

问题描述

如何使用 Ngnix 作为反向代理访问 OpenShift (OKD) 4.X?

我已经尝试了数百个反向代理 (Nginx) 设置,但当我们访问 “应用程序不可用” >oauth-openshift.apps.mbr.some.dm 路由。

注意:如果我们直接访问此路由(不使用反向代理),则不会出现此问题。可能是路由解析所需的某些信息没有发送。

这是我们使用的基本配置模板...

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-Forwarded-For https://$subdomain.apps.mbr.some.dm$request_uri;
    }

    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;
}

我们还测试了这些参数并遇到了一些问题,如下所示...

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;
        [...]
    }
    [...]
}

证书apps.mbr.some.dm.crtapps.mbr.some.dm.keyapps.mbr.some.dm。 crt.key.pem 是 OpenShift (OKD) 用来允许访问资源 (HTTPS) 的自签名证书。但是,如果我们尝试将这些证书与反向代理 (Nginx) 一起使用,则会发生以下错误(“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"

注意:我们测试了 apps.mbr.some.dm.crtapps.mbr.some.dm.crt.key.pem em> 证书使用 curl 并且都完美运行。


PLUS:我们无法定义一种方法来诊断/观察(记录)请求到达路由时出现的问题oauth-openshift.apps.mbr.some.dm 。我认为这将帮助我们找出问题所在。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)