Puncte:0

Configurație Nginx pentru potrivirea wildcard server_name cu o anumită rută Symfony

drapel bd

Am o aplicație Symfony 5 la domain.tld cu această configurație de bază nginx:

harta „$http_cloudfront_forwarded_proto:$http_x_forwarded_proto” $cloudfront_proto {
    implicit „http”;
    „~https” „https”;
}

Server {
    nume_server domeniu.tld;
    asculta 80 backlog=65535;

    root /var/www/project/public;

    client_max_body_size 500M;

    Locație / {
        # încercați să serviți fișierul direct, reveniți la index.php
        try_files $uri /index.php$is_args$args;
    }

    # opțional dezactivați revenirea la scriptul PHP pentru directoarele de active;
    # nginx va returna o eroare 404 atunci când fișierele nu sunt găsite în loc să treacă
    # cerere către Symfony (îmbunătățește performanța, dar pagina 404 a Symfony nu este afișată)
    # locație/pachete {
    # try_files $uri =404;
    # }

    locație ~ ^/index\.php(/|$) {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;

        # opțional setați valoarea variabilelor de mediu utilizate în aplicație
        # fastcgi_param APP_ENV prod;
        # fastcgi_param APP_SECRET <app-secret-id>;
        # fastcgi_param DATABASE_URL "mysql://db_user:db_pass@host:3306/db_name";
        fastcgi_param HTTP_X_FORWARDED_PROTO $cloudfront_proto;

        # Când utilizați legături simbolice pentru a lega rădăcina documentului la
        # versiunea curentă a aplicației dvs., ar trebui să treceți pe cea reală
        # calea aplicației în loc de calea către linkul simbolic către PHP
        # FPM.
        # În caz contrar, este posibil ca OPcache-ul PHP să nu detecteze corect modificările aduse
        # fișierele dvs. PHP (consultați https://github.com/zendtech/ZendOptimizerPlus/issues/126
        # pentru mai multe informatii).
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        # Previne URI-urile care includ controlerul frontal. Aceasta va 404:
        # http://domain.tld/index.php/some-path
        # Eliminați directiva internă pentru a permite URI-uri ca acesta
        intern;
    }

    # returnează 404 pentru toate celelalte fișiere php care nu se potrivesc cu controlerul frontal
    # acest lucru împiedică accesul la alte fișiere php pe care nu doriți să le fie accesibile.
    locație ~ \.php$ {
        întoarce 404;
    }

    error_log /var/log/nginx/project_error.log;
    access_log /var/log/nginx/project_access.log;
}

Cazul meu de utilizare:

Am mai multe rute:

/site/{siteUrl}
/site/{siteUrl}/*
/site/{siteUrl}/*/*
...

ca:

Vreau să accesez aceste rute cu un URL like

Nu vreau o redirecționare, dar o regulă de rescriere pentru toate adresele URL încep cu prefix.domain.tld indică către /site/prefix.domain.tld URL-uri și toate celelalte adrese URL ale activelor statice, cum ar fi prefix.domain.tld/build/css/ custom.css funcționează.

Încerc să adaug un nou bloc de server cu această adăugare:

Server {
    prefix nume_server.*;
    root /var/www/project/public;
    asculta 80;

    client_max_body_size 100M;

    locație = / {
        rescrie ^ /index.php/site/$host break;
    }

...

Dar nu a mers deloc...

Ma poti ajuta ? :D

Mulțumiri

drapel us
Ce ai făcut mai exact când „nu a funcționat deloc...”? Ce cerere ai facut? Care a fost răspunsul exact?
El Lobo Blanco avatar
drapel bd
Salut Tero. Când încerc https://prefix.domainA.tld, am o eroare 404 Not Found nginx

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.