Я пытаюсь обслуживать мое приложение в /, но запросы / oauth2 передаются в бэкэнд php.Вот моя последняя попытка конфигурирования nginx:
upstream dockerphp {
server backendphp:9000;
}
server {
listen 80;
server_name localhost;
index index.html;
root /application/frontend/build;
location /oauth2 {
root /application/public;
index index.php;
try_files $uri $uri/ /index.php$is_args$args;
#try_files /index.php$is_args$args =404;
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass dockerphp;
fastcgi_index index.php;
}
}
location / {
try_files $uri $uri/ /index.html;
}
}
Я пробовал практически все комбинации конфигураций, которые только могу придумать, и просто не могу заставить их работать.Большую часть времени я получаю 404 с.
В моих контейнерах nginx и php монтируется один и тот же каталог / application.
При использовании вышеуказанного конфига любые запросы к / oauth2 / blah выполняютсябыть поднятым блоком местоположения внизу и, следовательно, вернуться к моему интерфейсу.Вероятно, это самая большая моя проблема - блок локации / oauth2, на мой взгляд, более «специфичен», так почему он не «выигрывает»?
Вместо этого я попробовал закомментированную строку try_files (чтобы узнать, есть ли индекс.php, являющийся «резервным» значением, оказал влияние на специфичность), и nginx просто начал загружать файл index.php, а не передавать запрос.Помощь