Zha*_* Yi 5 nginx docker kibana kubernetes
我有一个 kibana 在 k8s 的 docker 容器内运行。我将 nginx 作为 sidecar,根据路径将所有流量转发到 kibana。
下面是我的 nginx 配置。对于elasticsearch 来说效果很好。但是当我/kibana/在浏览器中打开时,它会重定向到/spaces/enter并显示404 Not Found.
在 kibana 容器日志中我可以看到 302 转发日志:
{"type":"response","@timestamp":"2021-02-24T05:50:32Z","tags":[],"pid":7,"method":"get","statusCode":302,"req":{"url":"/","method":"get","headers":{"connection":"Keep-Alive","proxy-connection":"Keep-Alive","host":"kibana-entrypoint:5601","x-forwarded-for":"49.255.115.150","x-forwarded-proto":"http","x-forwarded-port":"80","x-amzn-trace-id":"Root=1-6035e928-603d67da7eff4225005fdbfc","upgrade-insecure-requests":"1","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","accept-encoding":"gzip, deflate","accept-language":"en-GB,en-US;q=0.9,en;q=0.8"},"remoteAddress":"192.168.1.41","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36"},"res":{"statusCode":302,"responseTime":7,"contentLength":9},"message":"GET / 302 7ms - 9.0B"}
user nginx;
worker_processes 1;
events {
worker_connections 10240;
}
http {
server {
listen 8080;
server_name localhost;
location /es/ {
proxy_pass http://sample-es-entrypoint:9200/;
}
location /health {
proxy_pass http://sample-es-entrypoint:9200/_cluster/health;
}
location /kibana/ {
proxy_pass http://kibana-entrypoint:5601/;
proxy_redirect off;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是kibana为什么要转发这个请求呢?
elastic/kibanaPR 66098/spaces/enter提到空间选择器 UI 使用该视图将用户发送到适当的默认路线。
PR 44678解释了空间概念的起源:
这弃用了
server.defaultRoutefromkibana.yml设置 (#46787),转而使用可通过 UI 控制的高级设置。
通过将此设置为高级设置,它本质上变得具有空间感知能力,因此用户可以为每个空间指定自定义默认路线。过渡
如果
server.defaultRoute在 中指定kibana.yml,它将映射到uiSettings.overrides.defaultRoute设置。
此设置告诉 UI 设置服务 defaultRoute 设置已锁定,并且无法通过 UI 进行编辑。
从迁移的角度来看,这对于在次要版本中升级的用户在功能上是等效的:该设置只能通过yml文件进行控制。功能性
希望利用空间感知路线的用户只需
server.defaultRoute从其yml文件中删除该设置(如果已设置)。
如果未设置,高级设置默认为/app/kibana,这是 之前的默认值server.defaultRoute。
因此,就您的情况而言,请检查 kibana.yml您的 Kibana Docker 映像所使用的:如果已设置,请尝试删除server.defaultRoute。
| 归档时间: |
|
| 查看次数: |
1906 次 |
| 最近记录: |