keycloak~nginx实现的https转发
keycloak我们都以docker为例子,来讲一下https的部署。
- https更安全,加密传输
- kc有些cookies,需要https的支持
nginx部署
upstream keycloak {
server 192.168.*.*:8080;
}
server {
server_name kc.lind.com;
listen 443 ssl;
ssl_certificate /usr/local/nginx/tls.crt;
ssl_certificate_key /usr/local/nginx/tls.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location /{
return 301 https://$server_name/auth;
}
location /auth {
proxy_pass http://keycloak/auth;
proxy_set_header Host $server_name;
proxy_set_header X-Forwarded-Proto $scheme; #决定了keycloak.js文件是走https,这个比较特殊
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
kc的docker部署
PROXY_ADDRESS_FORWARDING它的最终作用:
- 在负责在https请求转发到http时,keycloak所有资源(包括keycloak.js)都会改写成https协议,一般我们不
- 在服务端可以返回真实的客户端IP地址
- docker代码
docker run --name keycloak -d -p 8080:8080 \
-e KEYCLOAK_USER=admin \
-e KEYCLOAK_PASSWORD=admin \
-e DB_VENDOR=MYSQL \
-e DB_ADDR=192.168.4.26 \
-e DB_DATABASE=keycloak \
-e DB_USER=*** \
-e DB_PASSWORD=*** \
-e JDBC_PARAMS='useSSL=false' \
-e TZ=Asia/Shanghai \
-e LANG=zh_CN.GB2312 \
-e PROXY_ADDRESS_FORWARDING=true \ #接收反向代码的Forwarded-For
-e KAFKA_HOST=192.168.4.26:9092 \
-v /etc/localtime:/etc/localtime \
--privileged=true \
--restart=always \
keycloak/phone
通过nginx的https访问keycloak
https://localhost/auth,它将会代理到localhost:8080这个端口上。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2017-08-31 DotNetCore跨平台~Quartz热部署的福音~监控文件夹的变化
2017-08-31 爱上MVC~Web.Config的Debug和Release版本介绍
2017-08-31 Selenium~自动化测试来了
2016-08-31 Redis集群~windows下搭建Sentinel环境及它对主从模式的实际意义
2012-08-31 当<script>中的type等于text/html时,我们可以做很多事件!
2011-08-31 数据库调整也可以遵循“开闭原则”