Es gibt mehrere Fragen über StackOverflow, wie Unterordner mit verschiedenen Fastcgi-Backends oder Fragen ähnlich verwenden, aber nichts funktioniert richtig - und nach Stunden der Versuch und Lesen der Dokumentation (vielleicht ein kleines Detail fehlt)) Ich gebe auf.Nginx-Server mit mehreren Fastcgi-Backends für verschiedene Unterordner
ich die folgenden Anforderungen:
- auf
/
ein PHP 5.6-Anwendung ausgeführt wird (fastcgi Backend127.0.0.1:9000
) - auf
/crm
ein PHP-7.0-Anwendung ausgeführt wird, die es läuft auf/
zu glauben hat (fastcgi Backend127.0.0.1:9001
) - infact gibt es nur wenig mehr Backends, aber mit diesen beiden ich sie von meiner eigenen machen
Ich habe versucht, separate php Kontexte für Positionspräfixe zuerst zu definieren, bevor Sie versuchen, /crm
Präfix zu entfernen. Aber es scheint, dass ich etwas falsch mache, weil /crm
immer den PHP-Kontext von /
verwendet.
Meine eigentliche abgespeckten Konfiguration, entfernt alles nicht relevant und alle nicht bestandenen Tests:
server {
listen 80;
server_name myapp.localdev;
location /crm {
root /var/www/crm/public;
index index.php;
try_files $uri /index.php$is_args$args;
location ~ \.php$ {
# todo: strip /crm from REQUEST_URI
fastcgi_pass 127.0.0.1:9001; # 9001 = PHP 7.0
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
location/{
root /var/www/intranet;
index index.php;
try_files $uri /index.php$is_args$args;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000; # 9000 = PHP 5.6
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
Dies ist nicht die Antwort, die Sie wollen - aber ich schrieb über ein ähnliches Problem [hier] (http://serverfault.com/questions/766222/nginx-reverse-proxy-making-root-webapp-into-custom- Pfad/766225 # 766225) –
Danke für Ihren Kommentar, aber es ist nicht das gleiche Problem. Ihr drittes Problem, das das einzige Problem ist, das nicht gelöst werden konnte, kann leicht gelöst werden, indem Sie das HTML-Basis-Tag für die crm-Anwendung verwenden. –
Sie haben ein paar '' '' fehlen, und die Standardaktion auf einer Ihrer 'try_files' ist falsch. Ist das das Problem? Das '/ crm' wird'/index.php' und nicht '/ crm/index.php'? –