Puncte:0

Nginx servește două servicii din același port din două fișiere?

drapel cn

Am un fișier server nginx care servește conținut static, arată ceva simplu de genul:

Server {
    asculta 443 ssl;
    ssl_certificate /etc/letsencrypt/live/this_host/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/this_host/privkey.pem;
    nume_server conținut_static;

    # Rotirea corectă a cheilor de criptare a biletelor de sesiune nu este implementată, deci
    # dezactivează complet biletele de sesiune
    ssl_session_tickets off;

    # Având în vedere că dispozitivele client anticipate sunt relativ moderne, nu este nevoie
    # acceptă protocoale nesigure
    ssl_protocols TLSv1.3;
    ssl_prefer_server_ciphers dezactivat;

    locație /binare/ {
        auth_basic „protecție minimă”;
        auth_basic_user_file /etc/nginx/auth/.htpasswd;
        rădăcină /var/www/static/;
    }

    locație = /apple-app-site-association {
        alias /var/www/static/apple-app-site-association/apple-app-site-assocation;
        tipuri { } default_type „content-type: application/json”;
    }
}

Refolosesc acest lucru pe un server de producție și un server de staging. Pe serverul de staging, vreau să prezint și un API. Dacă adaug doar o altă locație în:

locație ^~ /my_cool_api/v1/ {
    proxy_pass http://localhost:4000/my_cool_api/v1/;
}

Dar apoi am fișiere de server diferite pentru diferitele serviri și este prost denumit „static_content” și în acel moment. Aș dori să-l fac mai modular, așa că am încercat să las primul fișier în pace și să adaug un al doilea fișier la serverul de staging:

Server {
    asculta 443 ssl;
    ssl_certificate /etc/letsencrypt/live/this_host/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/this_host/privkey.pem;
    nume_server my_cool_api;

    # Rotirea corectă a cheilor de criptare a biletelor de sesiune nu este implementată, deci
    # dezactivează complet biletele de sesiune
    ssl_session_tickets off;

    # Având în vedere că dispozitivele client anticipate sunt relativ moderne, nu este nevoie
    # acceptă protocoale nesigure
    ssl_protocols TLSv1.3;
    ssl_prefer_server_ciphers dezactivat;

    locație ^~ /accumulus_twig/v1/ {
        proxy_pass http://localhost:4000/accumulus_twig/v1/;
    }
}

Totuși, asta nu funcționează. După ce le conectez pe cele două în site-uri activate, fac doar API-ul să funcționeze în acest caz, error.log arată că nu poate găsi fișiere (statice) la /usr/share/nginx/html/binaries/. Nu există o modalitate modulară de a avea o singură definiție de server la 443 cu toate certificatele adecvate etc., dar de a defini locații/potriviri diferite în fișiere diferite?

Puncte:0
drapel cn

După ce ați citit răspunsul la această întrebare (Utilizați „include” în blocul serverului nginx, dar unde să salvați?), mi-am dat seama că aș putea să îmi evidențiez locațiile într-un mod modular prin fișiere includ:

Server {
    asculta 443 ssl;
    ssl_certificate /etc/letsencrypt/live/this_host/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/this_host/privkey.pem;
    nume_server https;

    # Rotirea corectă a cheilor de criptare a biletelor de sesiune nu este implementată, deci
    # dezactivează complet biletele de sesiune
    ssl_session_tickets off;

    # Având în vedere că dispozitivele client anticipate sunt relativ moderne, nu este nevoie
    # acceptă protocoale nesigure
    ssl_protocols TLSv1.3;
    ssl_prefer_server_ciphers dezactivat;

    include /etc/nginx/includes/*.location;
}

Și apoi diferite locații pot fi adăugate unul pe fișier de auto-documentare.

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.