nginx try_files und mehrere Standortblöcke

nginx try_files und mehrere Standortblöcke

Ich habe 2 Domänen, jede mit ihrem eigenen Dokumentenstamm. Der Stamm einer Domäne enthält die Ordner „pics“ und „docs“, auf die ich über die andere Domäne zugreifen möchte. So würden „domain1.com/pics/house.jpg“ und „domain2.com/pics/house.jpg“ dasselbe Bild anzeigen.

Unten sehen Sie einen Auszug aus der Konfigurationsdatei für Domäne2. Sie funktioniert nicht – ich erhalte immer eine 404-Fehlermeldung, wenn ich auf das Bild im Stammverzeichnis von Domäne1 auf Domäne2 zugreife. Ich freue mich über Vorschläge, wie ich das umschreiben und beheben kann. Vielen Dank

root /home/admin/domain2.com/html;

index index.php index.html;

location /pics/ {
       root /home/admin/domain1.com;
}

location /docs/ {
       root /home/admin/domain1.com;
}

location / {
        try_files $uri $uri/ =404;
}

location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}

Antwort1

Es stellte sich heraus, dass mein Code nicht funktionierte, wenn /pics/ weitere Ordner enthielt. Die Verwendung des Folgenden funktionierte.

location ^~ /pics/ {
       root /home/admin/domain1.com;
       # Queries beginning with /pics/ and then stops searching.
}

verwandte Informationen