我正在使用 keycloak,它在公共 ip 和管理控制台上运行,也可以通过公共 ip 访问,我正在使用 nginx Web 服务器。我要求只能在私有 IP 上访问管理控制台。其他 URL 应该在公共 ip/域名上正常工作。
现在,例如:domain_name/auth和domanin_name/auth/realm/admin和其他 url 可以公开访问。
要求:只有这个管理控制台域名/auth/realm/admin url 只能通过私有 ip 访问。
这可以通过nginx规则完成吗?
请任何人帮助我。
下面是我正在尝试的配置,但它没有按预期工作。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
rewrite ^/(.*) /$1 break;
proxy_ignore_client_abort on;
proxy_pass http://localhost:8880;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location /auth/realms/master {
allow 127.0.0.1;
deny all;
#try_files $uri $uri/ =404
}
}
您可以使用多个服务器条目,
allow
并且deny
正如您已经做过的那样:希望有帮助。