
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.html
Es 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)