У меня проблема с тем, что в настоящее время мой nginx проксирует несколько удаленных серверов php-fpm. Мне нужен был путь / vcms, как показано ниже.
location ^~ /vcms {
rewrite ^/vcms/?(.*)$ /vcms/public/$1 last;
add_header X-debug-message "vcms1" always;
}
location ^~ /vcms/public {
add_header X-debug-message "vcms2" always;
#try_files $uri $uri/ /vcms/public/index.php$is_args$args;
#try_files $uri /vcms/public/index.php$is_args$args;
try_files $uri $uri/ /vcms/public/index.php?q=$uri&$args;
index index.php index.html index.htm;
alias /usr/share/nginx/hd-cmv2/public;
location ~* \.php(/|$) {
#rewrite /vcms/public/(.*)$ /$1 break;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass my_remote_php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
Для этой конфигурации мой журнал ошибок nginx сказал:
"2019/10/12 10:44:21 [error] 4504#4504: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: XXX, server: XXX, request: "GET /vcms/ HTTP/2.0", upstream: "fastcgi://XXX:9000", host: "iXXX"
Связана ли проблема с fastcgi_param? потому что я также использую эти директивы в другом месте / XYZ. Я пробовал некоторые из предыдущих решений, но все еще не работал. Я хотел бы получить помощь, большое спасибо!