У меня есть интерфейс React и сервер Symfony, который я пытаюсь обслуживать в одном домене.Интерфейс React должен обслуживать активы, если они существуют в противном случае, чтобы обслуживать index.html
.
Я бы хотел использовать приложение php Symfony, когда /api
находится в URI запроса.Как и в приложении React, мне нужно, чтобы все запросы перешли в файл index.php
.
Интерфейс обслуживается правильно, но не API.Я получаю 404 от nginx, когда нажимаю /api
в браузере.
Я чувствую, что я близко, но по какой-то причине nginx не имеет правильного $document_root
.Я добавляю заголовок (X-script
), чтобы проверить, что переменные, и я получаю следующее:
X-script: /usr/share/nginx/html/index.php
Вот мой конфиг nginx.
server {
listen 80 default_server;
index index.html index.htm;
access_log /var/log/nginx/my-site.com.log;
error_log /var/log/nginx/my-site.com-error.log error;
charset utf-8;
location /api {
root /var/www/my-site.com/backend;
try_files $uri $uri/ /index.php$is_args$args;
}
location / {
root /var/www/my-site.com/frontend;
try_files $uri /index.html;
}
location ~* \.php$ {
add_header X-script "$document_root$fastcgi_script_name" always;
try_files $fastcgi_script_name =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
}
Любая помощь будет высоко ценится.