Nginx 从KeyClope登录页面重写URL的最后一部分

Nginx 从KeyClope登录页面重写URL的最后一部分,nginx,keycloak,openresty,Nginx,Keycloak,Openresty,我已经用KeyClope和openresty设置了一个docker,用Nginx作为web服务器来处理帐户。 一切正常,但我唯一的问题是,我找不到一种方法来重写KeyClock登录页面的URL 我需要重写这个 http://test-site.myown.lan:8080/auth/realms/test-site/protocol/openid-connect/auth?response_type=code&client_id=test-login&state=56ccae05

我已经用KeyClope和openresty设置了一个docker,用Nginx作为web服务器来处理帐户。 一切正常,但我唯一的问题是,我找不到一种方法来重写KeyClock登录页面的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;
   }
 }
}

你是说重写?还是重定向?你能展示一下你现在的代码/配置吗?那可能很清楚为什么它不工作。我实际上需要把URL改成第二个,不显示所有的协议/openid连接响应等。我不知道哪种方法是最好的,重写还是重定向,我对Nginx很陌生。是的,它会让人困惑。在您将URL代理到另一个位置之前,重新布线将更改URL,因此,只有当您的服务器正在使用更改后的URL执行某些操作时,才与此相关。重定向会将更改后的URL发送回客户端,以使用该URL发出新请求,因此,只有当您可以从浏览器导航到更改后的地址时,才与此相关。你知道哪些场景适合你的情况吗?我想说重定向是我的情况,我只需要截断URL的最后一部分。你能粘贴docker文件和nginx confs吗?把所有敏感的部分都删掉,但是如果不看清楚你目前拥有的东西,那就很难了。你是说重写吗?还是重定向?你能展示一下你现在的代码/配置吗?那可能很清楚为什么它不工作。我实际上需要把URL改成第二个,不显示所有的协议/openid连接响应等。我不知道哪种方法是最好的,重写还是重定向,我对Nginx很陌生。是的,它会让人困惑。在您将URL代理到另一个位置之前,重新布线将更改URL,因此,只有当您的服务器正在使用更改后的URL执行某些操作时,才与此相关。重定向会将更改后的URL发送回客户端,以使用该URL发出新请求,因此,只有当您可以从浏览器导航到更改后的地址时,才与此相关。你知道哪些场景适合你的情况吗?我想说重定向是我的情况,我只需要截断URL的最后一部分。你能粘贴docker文件和nginx confs吗?把任何敏感的部分都删掉,但是如果你没有看到你目前拥有的东西,那就很困难了。