2016-03-28 14 views
1

に私はkibana.ymlファイルが設定server.basePathが含まれていない場合にすべての作品RHEL 7.2にkibanaのserver.basePath結果404

をkibana 4.4.1を実行しています。 Kibanaが正常に起動し、期待されるHTMLを返すcurl http://x.x.x.x:5601/app/kibanaメッセージ

[info][listening] Server running at http://x.x.x.x:5601/ 

を出してくれる。

ただし、basePathをserver.basePath: "/kibana4"に設定した場合、http://x.x.x.x:5601/kibana4/app/kibanaの結果は404になります。なぜですか?

サーバーが正常に同じロギングと

[info][listening] Server running at http://x.x.x.x:5601/ 

しかし

curl http://x.x.x.x:5601/戻り

<script> 
    var hashRoute = '/kibana4/app/kibana'; 
    var defaultRoute = '/kibana4/app/kibana'; 
    ... 
</script> 

curl http://x.x.x.x:5601/kibana4/app/kibana戻り {"statusCode":404,"error":"Not Found"}

なぜん「/ kibana4 /アプリを起動します/キバナは404を返しますか?

答えて

4

server.basePathは期待通りに動作しません。

私はserver.basePathがURLに対称的に影響を及ぼすことを期待していました。リクエストURLがサブドメイン/ kibana4の下にあり、レスポンスURLがサブドメイン/ kibana4の下にあることを意味します。

これは該当しません。 server.basePathは、URLに非対称的に影響します。すべてのリクエストURLは同じですが、レスポンスURLにサブドメインが含まれていることを意味します。たとえば、キバナホームページはまだhttp://x.x.x.x:5601/app/kibanaにアクセスされていますが、すべてのhrefファイルのURLにはサブドメイン/ kibana4が含まれています。

server.basePathだけあなたは以下

をkibanaに要求を転送する前にサブドメインを削除し、プロキシを使用する場合、私は重要なビットが削除さreqrep式です

frontend main *:80 
    acl url_kibana path_beg -i /kibana4 
    use_backend kibana if url_kibana 

backend kibana 
    mode http 
    reqrep ^([^\ ]*)\ /kibana4[/]?(.*) \1\ /\2\ 
    server x.x.x.x:5601 

を使用HAProxy構成で動作しますサブドメイン/ kibana4をURLから取得してから、リクエストをkibanaに転送してください。

関連する問題