thiết lập làm việc
Tôi có một cấu hình của
- VPS bên ngoài với IP công cộng có proxy ngược Nginx (A)
- máy chủ nội bộ với Nginx (B)
- ứng dụng độc lập (không được đóng gói) Keycloak 17.0.1
Mà trông như thế này. Tôi đã đăng ký một miền cho máy chủ đó (giả sử) auth.example.com
Khi tôi tới https://auth.example.com Tôi có thể thấy trang keycloak thông thường có liên kết đến bảng điều khiển dành cho quản trị viên.
Bằng cách nhấp vào bảng điều khiển quản trị, tôi có thể đăng nhập đúng cách để quản lý vương quốc chính.
Vấn đề
Ngay sau khi tôi chứa keycloak, tất cả các liên kết cho bảng điều khiển quản trị và một số tập lệnh không còn hoạt động khi chúng được thay đổi từ https://auth.example.com
đến https://localhost
cấu hình
Bằng cách chứa keycloak, tôi không sửa đổi bất kỳ cấu hình nginx nào.
Nginx A
địa điểm /
{
proxy_set_header Máy chủ lưu trữ $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-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://[nginx b ip];
}
Nginx B
người phục vụ
{
server_name auth.example.com;
địa điểm /
{
proxy_pass http://localhost:[cổng docker bị lộ];
}
nghe 80;
}
Keycloak độc lập (lệnh làm việc)
/usr/bin/bash bin/kc.sh start --proxy edge --hostname=auth.example.com --db-url-host localhost --db-username keycloak --db-password mật khẩu
Keycloak Dockerized (docker-compose)
áo choàng khóa:
hình ảnh: quay.io/keycloak/keycloak:latest
lệnh: start --auto-build --features=token-exchange --hostname-strict-backchannel=true --hostname=auth.example.com
phụ thuộc:
- db
môi trường:
KC_METRICS_ENABLED: "đúng"
DB_VENDOR: [somedbvendor]
DB_ADDR: db
DB_DATABASE: keycloak
DB_USER: áo choàng khóa
DB_PASSWORD: mật khẩu
KEYCLOAK_ADMIN: quản trị viên
KEYCLOAK_ADMIN_PASSWORD: quản trị viên
KC_PROXY: cạnh
PROXY_ADDRESS_FORWARDING: "đúng"
cổng:
- "8081:8080"
mạng:
- bọc lưới
Tôi muốn chứa toàn bộ ứng dụng tôi có và các phần phụ thuộc của chúng và keycloak là bước đầu tiên mà tôi không thể hoàn thành.