Puncte:0

Moștenirea directivei de locație imbricată nginx când se aplică și când nu

drapel cn

Știu că trebuie să dublez proxy_pass în ambele locații de mai jos, proxy_set_headers trebuie să fie și ele duplicate?

Locație / {
  proxy_pass http://mywebfeservers;
  proxy_set_header X-Real-IP $adresă_la distanță;
  proxy_set_header X-Client-SSL DA;
  proxy_set_header X-Forwarded-For $remote_addr;
  proxy_set_header X-Forwarded-Host $gazdă;
  proxy_set_header X-Forwarded-Port 443;
  proxy_set_header X-Forwarded-Scheme https;

  locație /aaa {
    proxy_pass http://mywebfeservers;
    client_max_body_size 30M;
    proxy_set_header X-Real-IP $adresă_la distanță;
    proxy_set_header X-Client-SSL DA;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Host $gazdă;
    proxy_set_header X-Forwarded-Port 443;
    proxy_set_header X-Forwarded-Scheme https;
  }
}
Ivan Shatsky avatar
drapel gr
Nu este absolut clar documentat chiar la începutul directivei `proxy_set_header` [descriere](http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header)? _Aceste directive sunt moștenite de la nivelul de configurare anterior dacă și numai dacă nu există directive `proxy_set_header` definite la nivelul curent._
drapel cn
@IvanShatsky Da
Puncte:0
drapel cn

Ușor reformulat din comentariul lui Ivan Shatsky la întrebare.

Este absolut clar documentat chiar la începutul directivei proxy_set_header Descriere.

Aceste directive sunt moștenite de la nivelul de configurare anterior dacă și numai dacă nu există directive proxy_set_header definite pe nivelul actual.

Puncte:0
drapel cg

Teoretic dacă elimini /aaa si pleaca / ar trebui sa ai acelasi efect.

Dacă aveți nevoie, utilizați aceeași configurație de proxy în diferit locatii puteți adăuga configurația proxy pe un fișier.

Exemplu:

  1. Creați fișierul proxy.conf și adăugați aceste linii

Adăuga

proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Client-SSL DA;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $gazdă;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Forwarded-Scheme https;
  1. Modificați configurația
    Locație / {
        proxy_pass http://mywebfeservers;
        include <calea ta>/proxy.conf
    }
    
    locație /aaa {
       proxy_pass http://mywebfeservers;
       include <calea ta>/proxy.conf
    }
  1. Reîncărcați configurația

Obiectivul principal este crearea unei configurații modulare (fișiere multiple) care vă permite să modificați un singur fișier pentru a modifica mai multe puncte ale configurației dvs.

drapel cn
Mi-am editat ușor întrebarea pentru a adăuga de ce am vrut să am locația imbricată (locația imbricată se adaugă într-un client_max_body_size). După cum a subliniat Ivan în comentariul la întrebarea documentației, proxy_set_header în situația mea nu trebuie să fie duplicat, ceea ce evită necesitatea proxy.conf.

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.