Nginxの場所/ logsがKibanaに正しくプロキシパスされず、404になります

BlackHoleGalaxy

ドッキングされたアーキテクチャがあります。唯一の主要なエントリポイントはnginxです。これにより、すべてのサービスがリンクされます。

場所でドメイン名に到達することは/うまくいきます。Angularフロントエンドアプリは正しく表示されます。

主な問題は、/logsロケーションでKIBANA(v5.5)にアクセスすることです。

たとえばhttps://dev.example.com/logs/、ブラウザにアクセスしようとすると、https://dev.example.com/login?next =%2Flogsにアクセスしようとするため、404が表示されます

ロケーションエンドポイントでプロキシされているKibanaは、ベースURLが/。のURLを書き換えようとしているようです/ logs /の場所の後に追加されたURIを書き換える代わりに。

構成を次のように改善する方法:-Kibanaアプリを正しく表示する/ logs /に到達できるようにしますか?

これがnginxの構成です。クライアント、バックエンド、kibanaはdockerホスト名を指すことに注意してください。

server {
    listen  443;
    ssl     on;
    rdns    on;

    ssl_certificate /etc/ssl/production/certs/example/fullchain.pem;
    ssl_certificate_key /etc/ssl/production/certs/example/privkey.pem;

    server_name dev.example.com;

    # Angular APP
    location / {
        proxy_pass http://client;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # Backend proxy
    location /api {
        proxy_pass http://backend:9090;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # Logs on Kibana
    location /logs {
        proxy_pass http://kibana:5601;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

CURLリクエストの結果:

curl -v https://dev.example.com/logs/
* About to connect() to dev.example.com port 443 (#0)
*   Trying xx.xx.xx.xx...
* connected
* Connected to dev.example.com (xx.xx.xx.xx) port 443 (#0)
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using ECDHE-RSA-AES256-GCM-SHA384
* Server certificate:
*        subject: CN=example.com
*        start date: 2017-08-23 17:26:00 GMT
*        expire date: 2017-11-21 17:26:00 GMT
*        subjectAltName: dev.example.com matched
*        issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3
*        SSL certificate verify ok.
> GET /logs HTTP/1.1
> User-Agent: curl/7.28.1
> Host: dev.example.com
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Server: nginx/1.13.1
< Date: Sat, 26 Aug 2017 15:39:43 GMT
< Content-Type: text/html
< Content-Length: 169
< Connection: keep-alive
<
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.13.1</center>
</body>
</html>
* Connection #0 to host dev.example.com left intact
* Closing connection #0
* SSLv3, TLS alert, Client hello (1):

これについてあなたの助けをありがとう。

whites11

環境変数をkibanaコンテナに渡してserver.basePathに設定する必要があります。/logsSERVER_BASEPATH

次に、プロキシされた場所で書き換えを使用して、nginxの/ logsプレフィックスを削除する必要があります。

location /logs {
    rewrite ^/logs(/.*)$ $1 break;
    proxy_pass http://kibana:5601;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

さらに、kibanaには明らかにバグがあり、上記の構成は、次のURLでkibanaに到達した場合にのみ機能します。

http://nginxip/logs/

ただし、次のような終了スラッシュがない場合はそうではありません。

http://nginxip/logs

これを解決するには、nginxに別の書き換えを追加して、常に終了スラッシュが存在するようにする必要があります。/ logsの場所の外に次を追加します。

rewrite ^/logs$ /logs/;

出典:https//www.elastic.co/guide/en/kibana/current/settings.html

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

nginxのネストされた場所

分類Dev

Nginxが場所の下に戻る

分類Dev

Nginxの場所が正しく機能しない

分類Dev

プロキシサーバーを使用したnginxの場所

分類Dev

nginxの場所/ {}および場所= {}の優先度について

分類Dev

nginxに同様の場所を指定する正しい方法

分類Dev

Nginxの場所が正規表現で機能しない

分類Dev

nginx:指定された場所のproxy_passからパスを削除します

分類Dev

nginxの場所の正規表現の複数の要素

分類Dev

すべてのサーバーのnginxエラーの場所

分類Dev

拒否したNginxの場所が機能しない

分類Dev

ネストされた場所の構成NGINX

分類Dev

Nginxログファイルの場所の変更

分類Dev

Nginxロケーションプロキシパスホームページ1つの場所、他のすべてのルート、別の場所

分類Dev

文字iで始まるnginxの場所の一致

分類Dev

デフォルトのnginxの場所を設定する

分類Dev

デフォルトのnginxの場所を変更する

分類Dev

場所ディレクティブ内のnginx "root / parent / child"が機能せず、 "404 Notfound"と表示されます

分類Dev

nginxの場所が複数回一致する

分類Dev

nginxの場所はphpを解釈しません

分類Dev

Windows Internet Explorerのプロキシ設定が設定されておらず、TortoiseSVNプロキシ設定のみを使用している場合、TortoiseSVNはプロキシ経由で非常に遅くなります

分類Dev

nginxの場所に文字列と末尾が含まれています

分類Dev

/ etc / nginx / vhosts /内のNginx仮想ホストエラーの重複場所「/」

分類Dev

Nginxの構成場所とインデックス

分類Dev

Nginxリダイレクトのホスト名+場所

分類Dev

新しく作成されたSSISパッケージがソリューションエクスプローラーに表示されず、パッケージの場所にある.dtsxファイルを確認できます

分類Dev

nginxの場所の正規表現ルールが機能しない

分類Dev

Nginxの場所$ request_filenameが書き換えルールで正しく設定されていません

分類Dev

Nginx:場所が一致する場合にのみサーバーブロックを使用します

Related 関連記事

  1. 1

    nginxのネストされた場所

  2. 2

    Nginxが場所の下に戻る

  3. 3

    Nginxの場所が正しく機能しない

  4. 4

    プロキシサーバーを使用したnginxの場所

  5. 5

    nginxの場所/ {}および場所= {}の優先度について

  6. 6

    nginxに同様の場所を指定する正しい方法

  7. 7

    Nginxの場所が正規表現で機能しない

  8. 8

    nginx:指定された場所のproxy_passからパスを削除します

  9. 9

    nginxの場所の正規表現の複数の要素

  10. 10

    すべてのサーバーのnginxエラーの場所

  11. 11

    拒否したNginxの場所が機能しない

  12. 12

    ネストされた場所の構成NGINX

  13. 13

    Nginxログファイルの場所の変更

  14. 14

    Nginxロケーションプロキシパスホームページ1つの場所、他のすべてのルート、別の場所

  15. 15

    文字iで始まるnginxの場所の一致

  16. 16

    デフォルトのnginxの場所を設定する

  17. 17

    デフォルトのnginxの場所を変更する

  18. 18

    場所ディレクティブ内のnginx "root / parent / child"が機能せず、 "404 Notfound"と表示されます

  19. 19

    nginxの場所が複数回一致する

  20. 20

    nginxの場所はphpを解釈しません

  21. 21

    Windows Internet Explorerのプロキシ設定が設定されておらず、TortoiseSVNプロキシ設定のみを使用している場合、TortoiseSVNはプロキシ経由で非常に遅くなります

  22. 22

    nginxの場所に文字列と末尾が含まれています

  23. 23

    / etc / nginx / vhosts /内のNginx仮想ホストエラーの重複場所「/」

  24. 24

    Nginxの構成場所とインデックス

  25. 25

    Nginxリダイレクトのホスト名+場所

  26. 26

    新しく作成されたSSISパッケージがソリューションエクスプローラーに表示されず、パッケージの場所にある.dtsxファイルを確認できます

  27. 27

    nginxの場所の正規表現ルールが機能しない

  28. 28

    Nginxの場所$ request_filenameが書き換えルールで正しく設定されていません

  29. 29

    Nginx:場所が一致する場合にのみサーバーブロックを使用します

ホットタグ

アーカイブ