Konfiguracja Nginx: dwie aplikacje w tej samej domenie
Mam dwie aplikacje: frontend HTML + JS i backend PHP. Chciałbym skonfigurować Nginx tak, aby oba były obsługiwane z tej samej domeny. Żądania zaplecza są tworzone przy użyciu adresów URL zaczynających się od
/api.
Moja próba była taka:
server {
root/path/to/frontend;
index index.html;
server_name example.com; location/{
try_files $uri $uri//index.html;
} location/api {
alias/path/to/backend;
index index.php;
try_files $uri $uri//index.php;
} location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
}
Jednak dla wszystkich żądań do zaplecza otrzymuję błąd 404: główny scenariusz jest nieznany.
Czy jest sposób, aby osiągnąć to, co próbuję tutaj zrobić? W jaki sposób?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
1 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
nginx zawsze obsługuje żądanie z
Pojedynczy
tylko blok
.
Proponuję (ponownie) przeczytać następujące informacje:
Jak Nginx obsługuje żądanie
http://nginx.org/en/docs/http/ ... .html
Teraz, patrząc na twoją konfigurację, żądania serwera powinny być obsługiwane przez dwie lokalizacje:
Następujący
http://nginx.org/en/docs/http/ ... ation
dokumentacja, pierwsza to tzw
prefiks
miejsce, a drugie -
Wyrażenie regularne
(wyrażenie regularne) jeden. nginx sprawdzi oba, ale ostatecznie wybierze tylko jeden, który w twoim przypadku jest wyrażeniem regularnym.
Teraz, podczas przetwarzania go, nginx przekieruje żądanie do
w PHP, budując ścieżkę z
ponieważ jest to jedyne określone. Następnie zaplecze nie może znaleźć określonego pliku.
Możesz spróbować tego:
Jeśli chodzi o brak bezpieczeństwa, pod koniec października wygłosiłem wykład na temat nginx i PHP-FPM na stronie nginx.conf 2014. Dostępne slajdy:
https://rosset.net/LAMP_just_died.pptx
https://rosset.net/LAMP_just_died.pptx... Film będzie dostępny wkrótce.