nginx - 从 KEYCLOAK 登录页面重写 URL 的最后部分
问题描述
我已经设置了一个带有 keycloak 和 openresty 的 docker 来处理使用 Nginx 作为 Web 服务器的帐户。一切都按预期工作,但我唯一的问题是我找不到重写 Keycloack 登录页面 URL 的方法
我需要重写这个
http://test-site.myown.lan:8080/auth/realms/test-site/protocol/openid-connect/auth?response_type=code&client_id=test-login&state=56ccae05bad8e93b09297c3907db9591&redirect_uri=http%3A%2F%2Ftest-site.int.master.lan%2Flogin%2Fcallback&nonce=4f1ecb367a9067e5697812c48f2f9b9e&scope=openid%20email%20profile
进入这个
http://test-site.myown.lan/auth/realms/test-site
所以缩短最后一部分并隐藏端口。
我尝试了重写规则,但我没有看到 URL 有任何变化。
我如何实现这一目标?
编辑:这是 Nginx 配置
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
add_header X-Frame-Options SAMEORIGIN;
include /usr/local/openresty/nginx/conf/mime.types;
#default_type application/octet-stream;
# set search paths for pure Lua external libraries (';;' is the default path):
lua_package_path '${prefix}/lualib/ngx/?.lua;${prefix}/lualib/resty/?.lua;;';
# set search paths for Lua external libraries written in C (can also use ';;'):
lua_package_cpath '${prefix}/lualib/?.so;${prefix}/luajit/lib:/?.so;;';
# use internal dns as hostname resolver
resolver xxxxxxxxxx;
# cache for discovery metadata documents
lua_shared_dict discovery 1m;
# cache for JWKs
lua_shared_dict jwks 1m;
# Turning Lua Code Cache Off
lua_code_cache off;
server {
listen 80;
server_name *.myown.lan;
return 301 https://test-site.myown.lan:443$request_uri;
}
server {
listen 443 ssl default_server;
server_name test-site.myown.lan;
root /opt/nginx/html;
# Disabled caching so the browser won't cache the site.
expires 0;
add_header Pragma "no-cache";
add_header Cache-Control "private, max-age=0, no-cache, no-store";
# enables SSLv3/TLSv1, but not SSLv2 which is weak and should no longer
be used.
ssl_certificate /etc/ssl/certs/wildcard.pem;
ssl_certificate_key /etc/ssl/certs/wildcard.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL;
ssl_prefer_server_ciphers on;
# set session secret
set $session_secret secret;
location / {
access_by_lua_file /usr/local/openresty/nginx/conf/lua/cs-login.lua;
}
location /assets {
root /opt/nginx/html;
}
# redirect server error pages to the static pages
error_page 401 /401.html;
location = /401.html {
root /opt/nginx/html;
}
error_page 403 /403.html;
location = /403.html {
root /opt/nginx/html;
}
error_page 404 /404.html;
location = /404.html {
root /opt/nginx/html;
}
error_page 405 /405.html;
location = /405.html {
root /opt/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /opt/nginx/html;
}
location /name2 {
root /opt/html;
access_by_lua_file /usr/local/openresty/nginx/conf/lua/name2.lua;
}
location /name4 {
root /opt/html;
access_by_lua_file /usr/local/openresty/nginx/conf/lua/name4.lua;
}
}
}
解决方案
推荐阅读
- django - 不确定如何在 fstring 中格式化 url
- javascript - 多个站点的全局通用导航栏
- php - 有选择地格式化数组中的值
- javascript - 从函数中设置变量,里面可能有ajax-load?
- html - 您如何通过 html 将任何 tumblr 帖子的头像作为图像获取?
- node.js - 如何在sails.js 0.12 cors.js 文件中添加多个来源
- signal-processing - 如何将 naudio 滤波器添加到正弦波?
- android - 如何从 ViewModel 回调到 Android 中的 View
- python - bytes.__repr__ 表示如何工作?
- flutter - Flutter StreamBuilder 仅适用于 ListView 和 GridView?