Score:0

จะใช้ Ngnix เป็นพร็อกซีย้อนกลับเพื่อเข้าถึง OpenShift (OKD) 4.X ได้อย่างไร

ธง in

จะใช้ Ngnix เป็นพร็อกซีย้อนกลับเพื่อเข้าถึง OpenShift (OKD) 4.X ได้อย่างไร

ฉันได้ลองตั้งค่าเป็นร้อยๆ ครั้งสำหรับ reverse proxy (Nginx) และทั้งหมดล้มเหลวด้วยข้อผิดพลาด "สมัครไม่ได้" เมื่อเราเข้าถึง oauth-openshift.apps.mbr.some.dm เส้นทาง.

บันทึก: ปัญหานี้จะไม่เกิดขึ้นหากเราเข้าถึงเส้นทางนี้โดยตรง (โดยไม่ใช้ Reverse Proxy) อาจไม่มีการส่งข้อมูลบางอย่างที่จำเป็นสำหรับเส้นทางที่จะแก้ไข

นี่คือเทมเพลตการกำหนดค่าพื้นฐานที่เราใช้...

เซิร์ฟเวอร์ {
    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$;

    ที่ตั้ง / {
        proxy_pass https://10.2.0.18:443;
        proxy_set_header โฮสต์ $subdomain.apps.mbr.some.dm;
        proxy_set_header X-Forward-สำหรับ $proxy_add_x_forwarded_for;
    }

    ฟัง 443;
    ssl_certificate /etc/letsencrypt/live/apps.mbr.some.dm/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/apps.mbr.some.dm/privkey.pem;
    รวม /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

เรายังทดสอบพารามิเตอร์เหล่านี้และพบปัญหาดังที่คุณเห็นด้านล่าง...

เซิร์ฟเวอร์ {
    [...]
    ที่ตั้ง / {
        [...]
        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 สูง:!aNULL:!MD5;
        proxy_ssl_protocols TLSv1.2 TLSv1.3;
        เปิด proxy_ssl_server_name;
        เปิด proxy_ssl_session_reuse;
        เปิด proxy_ssl_verify;
        [...]
    }
    [...]
}

ใบรับรอง apps.mbr.some.dm.crt, apps.mbr.some.dm.key, apps.mbr.some.dm.crt.key.pem เป็นใบรับรองที่ลงนามเองซึ่งใช้โดย OpenShift (OKD) เพื่ออนุญาตการเข้าถึงทรัพยากร (HTTPS) อย่างไรก็ตาม หากเราพยายามใช้ใบรับรองเหล่านี้กับ reverse proxy (Nginx) ข้อผิดพลาดต่อไปนี้จะเกิดขึ้น ("Bad Gateway")...

22/07/2021 17:36:11 [ข้อผิดพลาด] 6999#6999: *1 ข้อผิดพลาดในการตรวจสอบใบรับรอง SSL ต้นน้ำ: (21:ไม่สามารถตรวจสอบใบรับรองใบแรกได้) ขณะจับมือ SSL ไปยังอัปสตรีม ไคลเอนต์: 177.25.231.233 เซิร์ฟเวอร์: ~ ^(?<subdomain>.+)\.apps\.mbr\.brlight\.net$, คำขอ: "GET /favicon.ico HTTP/1.1", อัปสตรีม: "https://10.2.0.18:443/favicon .ico", โฮสต์: "oauth-openshift.apps.mbr.some.dm", ผู้อ้างอิง: "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.crt และ apps.mbr.some.dm.crt.key.pem ใบรับรองโดยใช้ ขด และทั้งคู่ก็ทำงานได้อย่างสมบูรณ์แบบ


บวก: เราไม่สามารถกำหนดวิธีการวินิจฉัย/สังเกต (บันทึก) เกี่ยวกับสิ่งที่ผิดพลาดเมื่อคำขอมาถึงเส้นทางได้ oauth-openshift.apps.mbr.some.dm . ฉันคิดว่าสิ่งนี้จะช่วยให้เราทราบว่าเกิดอะไรขึ้น

Michael Hampton avatar
cz flag
ส่วนหัว X-Forwarded-For ที่คุณสร้างขึ้นไม่ถูกต้อง
Eduardo Lucio avatar
in flag
ฉันได้ลองอันนี้แล้วเช่นกัน `proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;` ปัญหาเดียวกัน...

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา