การตั้งค่าการทำงาน
ฉันมีการกำหนดค่าของ
- VPS ภายนอกพร้อม IP สาธารณะที่มี Nginx reverse proxy (A)
- เซิร์ฟเวอร์ภายในพร้อม Nginx (B)
- แอปพลิเคชันแบบสแตนด์อโลน (ไม่ใช่คอนเทนเนอร์) Keycloak 17.0.1
ซึ่งมีลักษณะดังนี้ ฉันลงทะเบียนโดเมนสำหรับเซิร์ฟเวอร์นั้นซึ่งก็คือ (สมมุติว่า) auth.example.com
เมื่อผมไป https://auth.example.com ฉันสามารถดูหน้า keycloak ปกติพร้อมลิงก์ไปยังคอนโซลผู้ดูแลระบบ
เมื่อคลิกที่คอนโซลการดูแลระบบ ฉันสามารถเข้าสู่ระบบเพื่อจัดการขอบเขตหลักได้อย่างถูกต้อง
ปัญหา
ทันทีที่ฉันคอนเทนเนอร์ keycloak ลิงก์ทั้งหมดสำหรับคอนโซลการดูแลระบบและสคริปต์บางตัวจะไม่ทำงานอีกต่อไปเนื่องจากเปลี่ยนจาก https://auth.example.com
ถึง https://localhost
การกำหนดค่า
ด้วยการใส่คีย์ปิดบังฉันไม่ได้แก้ไขการกำหนดค่า nginx ใด ๆ
งินซ์ เอ
ที่ตั้ง /
{
proxy_set_header โฮสต์ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-ส่งต่อเซิร์ฟเวอร์ $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://[nginx b ip];
}
งินซ์ บี
เซิร์ฟเวอร์
{
server_name auth.example.com;
ที่ตั้ง /
{
proxy_pass http://localhost:[พอร์ตนักเทียบท่าที่เปิดเผย];
}
ฟัง 80;
}
เสื้อคลุมกุญแจแบบสแตนด์อโลน (คำสั่งการทำงาน)
/usr/bin/bash bin/kc.sh start --proxy edge --hostname=auth.example.com --db-url-host localhost --db-username keycloak --db-password รหัสผ่าน
dockerized keycloak (นักเทียบท่า-เขียน)
เสื้อคลุม:
ภาพ: quay.io/keycloak/keycloak:latest
คำสั่ง: start --auto-build --features=token-exchange --hostname-strict-backchannel=true --hostname=auth.example.com
ขึ้นอยู่กับ:
- ฐานข้อมูล
สิ่งแวดล้อม:
KC_METRICS_ENABLED: "จริง"
DB_VENDOR: [ผู้ขายบางคน]
DB_ADDR: ฐานข้อมูล
DB_DATABASE: คีย์ปิดบัง
DB_USER: คีย์ปิดบัง
DB_PASSWORD: รหัสผ่าน
KEYCLOAK_ADMIN: ผู้ดูแลระบบ
KEYCLOAK_ADMIN_PASSWORD: ผู้ดูแลระบบ
KC_PROXY: ขอบ
PROXY_ADDRESS_FORWARDING: "จริง"
พอร์ต:
- "8081:8080"
เครือข่าย:
- สุทธิ
ฉันต้องการคอนเทนเนอร์แอปพลิเคชันทั้งหมดที่ฉันมีและการพึ่งพาและคีย์ปิดบังเป็นขั้นตอนแรกที่ฉันไม่สามารถดำเนินการได้