Puncte:0

NGINX try_files across multiple drives on Windows

drapel us

I am moving nginx out of a Linux VM to the Windows host for performance reasons and I'm having trouble with this part.

On Linux the configuration is:

root /;

try_files /mnt/m$uri /mnt/d$uri /mnt/l$uri =404;

Where /mnt/m, /mnt/d and /mnt/l are the mount points of the M:, D: and L: drives respectively.

On Windows I tried

root /;

try_files M:$uri D:$uri L:$uri =404;

but it throws this error

*1 GetFileAttributesEx() "C:L:/[...]" failed (123: The filename, directory name, or volume label syntax is incorrect)

It seems / is interpreted as the C: drive, it's the drive that nginx runs from. I also tried root ; and leaving the root directive out altogether but nothing worked.

Ivan Shatsky avatar
drapel gr
Nu sunt sigur că este posibil deloc. Dacă într-adevăr aveți nevoie de această funcționalitate, de ce să nu folosiți puncte de montare NTFS pentru diferite hard disk-uri?
erik avatar
drapel us
@IvanShatsky De fapt, a fost posibil doar prin configurație, dar este o soluție destul de hackeră. Nu aveam idee că NTFS are puncte de montare, m-ar fi scutit de mult stres
Puncte:0
drapel us

Am reușit să o fac prin imbricarea (?) locații numite. Deși aveți grijă, deoarece anteturile/opțiunile pe care le-ați setat în blocul de locație principală nu se vor aplica în locațiile denumite, cel puțin din experiența mea. Soluția lui @IvanShatsky cu puncte de montare NTFS pare să fie mult mai bună.

Locație /  {
    rădăcină „M:\”;
    try_files $uri $uri/ @ddrive;

}

locație @ddrive {
    rădăcină „D:\”;
    try_files $uri $uri/ @ldrive;
}

locație @ldrive {
    rădăcină „L:\”;
    try_files $uri $uri/ =404;
}
Ivan Shatsky avatar
drapel gr
Nu cred că aveți nevoie de o componentă `$uri/` a directivei `try_files`. Este folosit doar pentru a verifica dacă un `$uri` este un director care conține vreun fișier index și nu l-ați avut în configurația originală. Câteva cuvinte despre moștenirea antetelor/opțiunilor.Când aveți un număr de locații care partajează anteturi/opțiuni comune, puteți muta acele definiții cu un nivel în sus, dar nu puteți defini un antet suplimentar în interiorul locației fără a pierde toată moștenirea antetului de la nivelul anterior. Adică să nu definești nimic și să moștenești totul sau să definești totul.

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.