Mehrere Dokumentstammverzeichnisse mit nginx

Mehrere Dokumentstammverzeichnisse mit nginx

Ich muss nginx so konfigurieren, dass es eine andere Software aus einem anderen Dokumentstammverzeichnis im Unterverzeichnis einer Domäne bereitstellt, und zwar wie folgt:

http://example.com/... - main site from /var/www/main
http://example.com/docs/ - an independent application from /var/www/app

Ich habe viele Möglichkeiten ausprobiert, darunter Proxy_Pass und Alias, aber keine davon hat bei mir funktioniert. Die neueste Konfiguration ist die folgende:

server {
        listen 80;
        server_name example.com;
        root /var/www/main;
        index index.html;

        location /docs/ {
           root /var/www/app;
        }
}

Wenn ich versuche, aufhttp://example.com/docs/Ich sehe den Fehler „404 Nicht gefunden“ und die folgende Meldung im Fehlerprotokoll:

*1 "/var/www/app/docs/index.html" wurde nicht gefunden (2: Keine solche Datei oder kein solches Verzeichnis

/var/www/app/docs/index.htmlEs versucht also, stattdessen zu öffnen /var/www/app/index.html.

Ich weiß, dass das folgendermaßen behoben werden könnte rewrite: rewrite ^/docs/(.*)$ /$1 last;. Bei mir funktioniert es, aber es schreibt auch alle relativen Links zu allen Assets neu, also ist das nicht der Fall.

Aktualisieren:

1) mein Problem mit alias:

location /docs/ {
   autoindex on;

   alias /var/www/app/;
}

"/var/www/app/index.html" wurde nicht gefunden (2: Keine solche Datei oder kein solches Verzeichnis)

2) Problem mit Proxy_Pass:

    location /docs/ {
       proxy_pass: http://127.0.0.1:8080;
    }

...
server {
    listen 8080;
    server_name localhost;

    root   /var/www/app;
    index  index.html;
}

Der Fehler ist der folgende:

/var/www/app/docs/index.html" is not found (2: No such file or directory)

verwandte Informationen