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
したがって、Sinatraがリクエストを受け入れるようにリクエストを渡すために必要なnginx設定は次のとおりです。
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;
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加