Puncte:0

NGINX - proxy invers, dar un subdosar în directorul local static

drapel mt

Întâmpin probleme în a afla sintaxa de bază pentru transmiterea prin proxy a majorității traficului către o instalare locală Solr, dar lăsând o singură cale/dir solicitări trimise la un director html static. Toate locațiile secundare, terțiare etc... trebuie setate de regex? Nu am reușit să găsesc un ghid simplu despre asta.

erori curente: /adv/index.html - 404 - Nu a fost găsit /adv/ - 403 Interzis /solr/ - funcționează bine

Iată configurația mea:

utilizator www-date;
worker_proceses auto;
pid /run/nginx.pid;
#include /etc/nginx/modules-enabled/*.conf;

evenimente {
        conexiuni_muncitor 1024;
        multi_accept pe;
}

http {
        sendfile activat;
        tcp_nopush activat;
        tcp_nodelay activat;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        index index.html;

        includ /etc/nginx/mime.types;
        aplicație de tip_default/octet-stream;
        Server {
                asculta 80;

                Locație / {
                    proxy_pass http://localhost:8983;
                }

                locație /adv/ {
                        #, de asemenea, nu era sigur de ce permisiuni aveau nevoie aici
                        # setați recursiv folderul adv și fișierele din interior la 777
                        alias /var/www/adv;
                }
        }
}
Richard Smith avatar
drapel jp
Verificați jurnalul de erori, dar încercați și `root /var/www;` în loc de `alias /var/www/adv;`
Ivan Shatsky avatar
drapel gr
@Tyndall Când utilizați o directivă „alias” în interiorul locației, trebuie să utilizați barele oblice cu atenție.Configurația dvs. va înlocui prefixul `/adv/` al URI-ului dvs. cu `/var/www/adv`, rezultând un nume de fișier nevalid. [Aici](https://stackoverflow.com/a/69296739/7121513) este o explicație mai detaliată cu exemple.
drapel mt
ciudat. Pe baza jurnalelor, se pare că solicitările mele încercau fie să ajungă la /adv/adv/index.html când am folosit root și /advindex.html când am folosit alias.
drapel mt
Dacă încerc să folosesc root și să elimin adv din cale (lăsându-l să se adauge singur din adresa URL pe care o trec), funcționează pentru orice, cu excepția /adv, aproape ca și cum nu știe că este un director și pentru a-mi servi doar index.html fişier. (/adv/ lucrări și /adv/index.html lucrări)
Ivan Shatsky avatar
drapel gr
@Tyndall Acesta este un comportament așteptat. Puteți forța o redirecționare folosind ceva de genul `location = /adv { return 301 /adv/; }`. Folosiți fie `root /var/www`, fie `alias /var/www/adv/` în `location /adv/ { ... }`, dar nu `alias /var/www/adv`. Folosirea `root /var/www/` nu va face un astfel de rău, deoarece va avea ca rezultat o cale de fișier `/var/www//adv/index.html` care ar funcționa și ea.
Ivan Shatsky avatar
drapel gr
@Tyndall Sau puteți folosi fie `location /adv { root /var/www; }` sau `location /adv { alias /var/www/adv; }`, cu toate acestea, va depăși orice URI de solicitare care începe cu `/adv`, de ex. `/advance`, de asemenea.
drapel mt
Multumesc tuturor. Deci soluția care pare să funcționeze pentru mine. Este din primul comentariu al lui Ivan (și Richard) este un alias fără bare oblice pe calea locației sau pe calea aliasului. Lucru ciudat este... când tast /adv fără bară oblică, cred că sunt redirecționat către o versiune a adresei URL cu bară oblică finală. Este normal ca Nginx să facă asta?
Ivan Shatsky avatar
drapel gr
@Tyndall Cred că este normal pentru fiecare server web, deoarece `adv` este un director și nu un fișier. Vizualizați un index în directorul `adv`. Gândește-te la asta ca și cum ar fi un sistem de fișiere.
drapel mt
Ar trebui să adăugați acest lucru ca răspuns pentru a obține credit. Multumesc din nou.

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.