Puncte:0

Depozit gateway api Nginx cu suport pentru subdomenii

drapel ke

Urmează un tutorial pentru a configura un proxy API, rulez aplicații de server de producție și dezvoltare pe același VPS

https://www.nginx.com/blog/deploying-nginx-plus-as-an-api-gateway-part-1/

Am domeniile mele gestionate cu SSL prin certbot pe ambele live.domain.com și dev.domain.com

Sunt blocat la „Definirea API-ului Warehouse” Problema este că rutarea explicată se bazează pe locația căii URL, nu explică cum să gestionezi subdomeniul configurat deasupra acestuia.

Am configurat: api_gateway

include api_backends.conf;
include api_keys.conf;

Server {
    access_log /var/log/nginx/api_live.log principal; # Fiecare API se poate conecta și la a 
                                                   # fișier separat

    asculta 443 ssl;
    nume_server live.domain.com;

    # Configurare TLS
    ssl_certificate /etc/letsencrypt/live/live.domain.com/fullchain.pem; # gestionat de Certbot
    ssl_certificate_key /etc/letsencrypt/live/live.domain.com/privkey.pem; # gestionat de Certbot
    includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 5m;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_protocols TLSv1.2 TLSv1.3;

    # Definiții API, una per fișier
    include api_conf.d/*.conf;

    # Răspunsuri de eroare
    error_page 404 = @400; # Tratează căile nevalide drept solicitări greșite
    proxy_intercept_errors activat; # Nu trimiteți erori de backend către client
    includ api_json_errors.conf; # erori JSON adaptate clienților API
    tip_implicit aplicație/json; # Dacă nu există tip de conținut, presupuneți JSON
}
# *repetat pentru dev.domain.com*

api_backends

în direct în amonte {
zona live_service 64k;
server 127.0.0.1:4000
}
dezvoltator în amonte {
zona dev_service 64k;
server 127.0.0.1:2000
}

În orice fel îl pot gestiona cu următoarele:

Locație / {
    # Configurarea politicii aici (autentificare, limitare a ratei, înregistrare în jurnal...)
    #
    access_log /var/log/nginx/warehouse_api.log principal;

    # URI rutare
    #
# dacă subdomeniul este activ
    Locație / {
        proxy_pass http://live;
    }
# else dacă subdomeniu dev
    Locație / {
        proxy_pass http://dev;
    }

    întoarce 404; # Prindele pe toate
}

poate pot folosi acest fragment pe care l-am găsit.

    dacă ($gazdă = live.domain.com) {
        returnează 301 https://$host$request_uri;
    } # gestionat de Certbot

Este posibil?

    dacă ($gazdă = live.domain.com){
        locație /api {
                proxy_pass http://live/api;
        }
# ȘI/SAU
        locație /docs/ {
                proxy_pass https://live$request_uri
        }
    }
Puncte:1
drapel za

Totul este aproape în regulă în configurația ta, cu excepția faptului că te-ai păcălit cu acele include și Locație / {} blocuri și fără a include a doua parte de configurare vhost.

Trebuie doar să pui live.domain.com și dev.domain.com Locație / {} blocuri în corespunzătoare Server {} blocuri și atât (unul care conține proxy_pass http://live; în cel viu și așa mai departe).

Nu folosi dacă () {} blocuri în acest moment, nu aveți nevoie de el.

Și da, îți lipsește oarecum non-TLS Server {} blocuri, dar asta e o altă întrebare, cred.

drapel ke
Vrei să spui că adaug proxy_pass la blocul de server din „api_gateway” și șterg „warehouse_api.conf”?
drapel ke
Mi-am dat seama cu câteva încercări și erori! Din păcate, nu există „toate” căile, așa că am direcționat calea api și calea documentului în funcție de locațiile mele din blocul serverului, voi dori să continui să învăț Nginx pentru a putea face aceste lucruri mai bine în viitor. multumesc pentru indicii.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.