我正在尝试在/下提供我的前端应用程序,但对/ 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 docker容器都安装了相同的/ application目录。
使用上面的配置,对/ oauth2 / blah的任何请求都将被底部的位置块接收,因此将返回我的前端。这可能是我最大的问题-在我看来/ oauth2位置块更“特定”,那么为什么不“获胜”呢?
我尝试使用注释掉的try_files行(以查看index.php是否为“后备”值对特异性有影响),nginx才开始下载index.php文件,而不是传递请求。帮助?
GCT1015
UYOU