Je souhaite que plusieurs sites soient référencés par Nginx. soit en utilisant site1.someIp
, site2.someIp
ou par someIp/site1
, someIp/site2
nginx transférer mais modifier le contexte d'emplacement
Lorsque je tente d'y parvenir en utilisant les paramètres suivants:
server{
listen 80;
listen [::]:80;
location /first {
proxy_pass http://localThing:somePort;
}
location /second {
proxy_pass localThing2;
}
}
Il en résulte un transfert /first
-http://localThing:somePort/first
mais en fait, je veux seulement de transmettre à http://localThing:somePort
Actuellement, j'utilise plusieurs serveurs d'écoute sur différents ports, par exemple someIp:1111
, someIP:2222
mais ce n'est pas une bonne solution.
- Je veux soit en quelque sorte pas transmettre l'emplacement adapté
- ou utilisez mysite.someIp: somePort (mais ne sont pas sûr de savoir comment atteindre cet objectif)
La réponse aimablement fournie par @jdewald est un bon début car le HTML est transmis mais PAS le CSS.
Jusqu'à présent, je remarqué qu'il peut être simplifié pour
location /first {
proxy_pass http://someip:somePort/;
}
où le dernier /
ajoutant après somePort/
est important, mais les résultats dans le même problème que le CSS est injoignable. Le CSS semble être inaccessible car l'application (http://concourse.ci/) le sert à localIp:somePort/public
. Ce n'est pas un problème si l'emplacement est défini sur /
mais comme je veux proxy plusieurs services d'une manière agréable en utilisant l'une des deux méthodes décrites ci-dessus et non le mappage à /
en utilisant différents ports.
Belle prise sur la version simplifiée, j'avais oublié et oublié que nginx ne ferait que remplacer l'emplacement correspondant. Le CSS est-il conceptuellement sous /(first|second|...)/public/blah.css (et dans l'application sous /public/blah.css) ou first.mysite.com/public/blah.css? Voulez-vous supprimer la partie "/ public" ou voulez-vous la joindre à partir de là? Quelle URL est le HTML servant pour le CSS? –
Le CSS est servi par exemple de http: // myServer: 5555/public/main.css? Id = fef6507a177742529af48a161e08a9a4 Autant que je comprends la chose que le CSS est servi du service local de/public et je veux le servir de 'myNginx/service /' ou 'service.myNginx' je veux juste tout le matériel livré, je veux juste que le service fonctionne. –
Donc le HTML et CSS viennent de différents endroits? Il n'y a vraiment aucune raison que vous ne puissiez pas simplement configurer un bloc d'emplacement comme/service/{qui passe à/public /. Je peux éditer la réponse, mais c'est essentiellement ce que vous avez déjà, juste pour chaque bloc d'emplacement –