我正在尝试将nginx配置为反向代理,以使用外部身份验证API保护其他服务器(kibana) .
这是应该将我登录到kibana仪表板的网址 - http://127.0.0.1/kibana_proxy?username=my.user&password=test67
一旦完成认证(即https状态200),nginx就会抛出404错误 . 但错误日志有这个 -
2018/10/18 13:33:52 [错误] 10718#0:* 19 open()“/ usr / share / nginx / html / app / kibana”失败(2:没有这样的文件或目录),客户端: 127.0.0.1,server:_,request:“GET / app / kibana HTTP / 1.1”,host:“127.0.0.1”,referrer:“http://127.0.0.1/kibana_proxy/?username=my.user&password=test67 “
这是我的nginx conf文件 -
server {
listen *:80;
server_name _;
location = /auth {
set $query '';
if ($request_uri ~* "[^\?]+\?(.*)$") {
set $query $1;
}
proxy_pass http://127.0.0.1:8080/auth?$query;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
}
location /kibana_proxy/ {
proxy_pass http://127.0.0.1:5601/;
auth_request /auth;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
2 回答
每当您使用
Restricting Access with HTTP Basic Authentication
时,您应该使用以下网址模式来访问受限制的网址在标准HTTP身份验证中,无法通过查询参数传递用户名和密码 .
Update:
我觉得你的nginx设置需要一些更新 . 您应该重写网址以删除
/kibana_proxy/
:对于那些寻求答案的人 - 这是nginx服务器conf为我解决了这个问题 -