Nous avons une architecture dockerisée. Le seul et principal point d'entrée est notre nginx. Ce qui fait le lien entre tous nos services.Nginx location/logs ne passe pas correctement le proxy à Kibana menant à 404
Atteindre le nom de domaine avec l'emplacement /
fonctionne très bien. Notre application frontale Angular s'affiche correctement.
Le problème principal est d'accéder à KIBANA (v5.5) au /logs
.
Par exemple en essayant d'atteindre https://dev.example.com/logs/
le navigateur affiche un 404 en raison du fait qu'il essaie d'atteindre https://dev.example.com/login?next=%2Flogs.
Il semble que Kibana, comme indiqué dans notre point de terminaison Location, tente de réécrire l'URL avec une URL de base de /
. Au lieu de réécrire l'URI ajouté après/logs/location.
Comment améliorer notre configuration pour: - Permet d'atteindre/logs/qui affiche correctement notre application Kibana?
Voici notre configuration nginx. S'il vous plaît noter client, backend, kibana se réfère aux noms d'hôtes 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;
}
}
Résultats de demande 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):
Merci pour votre aide à ce sujet.
Sur quel port votre application client fonctionnant sur? –
Il fonctionne sur '80' – BlackHoleGalaxy
'/logs' devrait aller à kibana, même si elle a des erreurs. Quelque chose ne va pas ici. Pouvez-vous ajouter les résultats de 'curl -v http: // nginxip/logs' à votre question, afin que l'on puisse voir ce qui se passe. En outre, les journaux de conteneurs nginx pour aller avec ce serait le meilleur –