Écrasement Nginx Sur la voiture du docteur lorsque le port hôte! = Conteneur portuaire
J'essaie de courir plusieurs contenants de quai, ce qui fonctionne avec nginx, Port d'écoute 80, Mais avec la comparaison de différents ports de l'hôte avec le port 80 Conteneurs.
Pour la plupart, cela fonctionne, à l'exception des cas où nginx Effectue la redirection due à l'absence de slash finale.
Considérant la configuration ci-dessus nginx et le conteneur Docker qui le démarre avec le port hôte 8080, par rapport au port du conteneur 80, je peux obtenir localhost: 8080 / docs / de l'autre côté curl ok:
Mais si je demande localhost: 8080 / docs, Je reçois la redirection localhost / docs /
Comment puis-je avoir nginx Enregistrez le port source lors de la redirection? J'ai essayé de regarder port_in_redirect et server_name_in_redirect, Mais ils n'ont pas aidé.
ÉDITER
Basé
https://forum.nginx.org/read.php?2,261216,261216#msg-261216
Cela ne semble pas possible maintenant.
Pour la plupart, cela fonctionne, à l'exception des cas où nginx Effectue la redirection due à l'absence de slash finale.
server {
listen 80;
root /var/www;
index index.html;
location /docs {}
}
Considérant la configuration ci-dessus nginx et le conteneur Docker qui le démarre avec le port hôte 8080, par rapport au port du conteneur 80, je peux obtenir localhost: 8080 / docs / de l'autre côté curl ok:
> GET /docs/ HTTP/1.1
> User-Agent: curl/7.35.0
> Host: localhost:8080
> Accept: */*
>
< HTTP/1.1 200 OK
* Server nginx/1.9.5 is not blacklisted
< Server: nginx/1.9.5
< Date: Sat, 28 Nov 2015 17:27:05 GMT
< Content-Type: text/html
< Content-Length: 6431
< Last-Modified: Sat, 28 Nov 2015 17:17:06 GMT
< Connection: keep-alive
< ETag: "5659e192-191f"
< Accept-Ranges: bytes
<
... html page ...
Mais si je demande localhost: 8080 / docs, Je reçois la redirection localhost / docs /
> GET /docs HTTP/1.1
> User-Agent: curl/7.35.0
> Host: localhost:8080
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
* Server nginx/1.9.5 is not blacklisted
< Server: nginx/1.9.5
< Date: Sat, 28 Nov 2015 17:29:40 GMT
< Content-Type: text/html
< Content-Length: 184
< Location: [url=http://localhost/docs/]http://localhost/docs/[/url]
< Connection: keep-alive
<
... html redirect page ...
Comment puis-je avoir nginx Enregistrez le port source lors de la redirection? J'ai essayé de regarder port_in_redirect et server_name_in_redirect, Mais ils n'ont pas aidé.
ÉDITER
Basé
https://forum.nginx.org/read.php?2,261216,261216#msg-261216
Cela ne semble pas possible maintenant.
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
5 réponses
Alice
Confirmation de:
Catherine
Confirmation de:
directives et ne pas compter sur explicite ou implicite
Redirection. Par exemple:
Ce n'est pas un comportement identique car il élimine complètement la redirection. Si vous devez rediriger à la fin de la fonctionnalité oblique, comme dans le module d'index, une solution plus complexe est requise. Par exemple:
Christine
Confirmation de:
Blanche
Confirmation de:
https://serverfault.com/a/739568/488499
Des offres:
La seule différence est que je ne spécifie pas
?
Spécifiez le code d'erreur pour éviter le cycle de redirection.
En attente de rétroaction du service d'assistance nginx.
Hannah
Confirmation de:
Pour moi, il a été décidé d'ajouter ce qui suit dans nginx.conf