NGINX - proxy Inverse de multiples API sur des ports différents
J'ai l'API suivante(s):
- localhost:300/api/clients/
- localhost:400/api/clients/:id/facturation
- localhost:500/api/commandes
Je voudrais utiliser NGINX pour les avoir tous courir sous l'emplacement suivant:
localhost:443/api/
Cela semble très difficile à cause des clients qui s'étend sur deux serveurs.
Voici ma tentative a échoué, en commençant par les ordres
server {
listen 443;
server_name localhost;
location /api/orders {
proxy_pass https://localhost:500/api/orders;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
server {
listen 443;
server_name localhost;
location /api/customers/$id/billing {
proxy_pass https://localhost:400/api/customers/$id/billing;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
server {
listen 443;
server_name localhost;
location /api/customers {
proxy_pass https://localhost:300/api/customers;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Rien de sauter aussi loin que un correctif? Merci!
OriginalL'auteur Proximo | 2016-09-29
Vous devez vous connecter pour publier un commentaire.
Les trois services sont mandatées par le même serveur (dans la mesure du
nginx
) doit donc être structuré de troislocation
blocs dans un délai d'unserver
bloc. Voir ce document pour plus de détails.Si vous êtes juste de passage, l'URI originale non modifiée, vous n'avez pas besoin de spécifier l'URI sur le
proxy_pass
déclaration.Si le
proxy_set_header
consolidés sont identiques, ils peuvent être précisés une fois dans le bloc parent.Le type de
location
déclaration requise dépend de la gamme d'Uri traitées par lelocalhost:300/api/customers/
service. Si c'est un URI, le=
de la syntaxe du travail. Si c'est une URI qui ne correspond pas à/api/customers/:id/billing
, alors vous aurez besoin d'utiliser une expression régulière emplacement du bloc. Voir ce document pour plus de détails.Je ne suis pas sûr que cela fonctionnera, sauf si vous résiliez SSL ici. C'est de configurer la proxy inverse comme un serveur sécurisé.
OriginalL'auteur Richard Smith