gpt4 book ai didi

nginx - 无法从 nginx 代理到 kibana

转载 作者:行者123 更新时间:2023-12-01 17:46:23 25 4
gpt4 key购买 nike

我正在尝试将请求从 nginx 代理到 kibana (logstash)。我可以在端口 9292 上访问 kibana 仪表板 - 我可以确认某个服务正在监听端口 9292。我可以成功从 nginx 代理到其他服务,但 kibana(端口 9292)的代理指令不起作用 - 我可以代理到 9200用于 Elasticsearch 。任何有关如何进一步解决此问题的想法将不胜感激。

更新:我尝试更改上游的服务器设置以指向 0.0.0.0 以及服务器地址,但这两个选项都不起作用。请求被路由到默认服务器。

另一个更新:我注意到从 nginx 默认文件中删除代理参数允许我将请求转发到 kibana listneing 端口 - 但是,kibana 提示缺少“dashboards/default.json”,我猜测这是由于某些丢失或配置错误的设置造成的在 Nginx 中。

默认(/etc/nginx/sites-available)

upstream logstash {
server 127.0.0.1:9292; ##kibana
keepalive 100;
}

server {
listen 84;
listen [::]:84 ipv6only=on;
root /var/www/;
index index.html index.htm;
server_name logstash;

##logging per server
access_log /var/log/nginx/logstash/access.log;
error_log /var/log/nginx/logstash/error.log;

location / {
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://logstash;
}
}

最佳答案

问题似乎是

proxy_pass http://your-logstash-host;

如果您查看 LogStash Web 中的日志,您将看到“警告 -- :Rack::Protection::JsonCsrf 阻止的攻击”

机架保护提供了一些我不熟悉的内置安全性,以防止跨域资源共享攻击。问题在于 Nginx 的 proxy_pass 看起来像是对 ruby​​ 机架保护的 CORS 攻击。

编辑:

如前所述,模块 Rack::Protection::CSRF 是引发此警告的模块。

我打开了代码,我们可以清楚地看到发生了什么:

def has_vector?(request, headers)
return false if request.xhr?
return false unless headers['Content-Type'].to_s.split(';', 2).first =~ /^\s*application\/json\s*$/
origin(request.env).nil? and referrer(request.env) != request.host
end

因此,这是传递请求所需的 nginx 配置,以便 Sinatra 接受它们:

server {
listen 80;
server_name logstash.frontend.domain.org;

location / {
# Proxying all requests from logstash.frontend to logstash.backend
proxy_pass http://logstash.backend.domain.org:9292;
proxy_set_header X-Real-IP $remote_addr;

# Set Referer and Host to prevent CSRF panick by Sinatra
proxy_set_header Referer my-host-04;
proxy_set_header Host my-host-04.domain.org;

# Alternatively to setting the Referer and Host, you could set X-Requested-With
#proxy_set_header X-Requested-With XMLHttpRequest;
}
}

关于nginx - 无法从 nginx 代理到 kibana,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20574198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com