Эта проблема сводила меня с ума последние пару дней ... Работая над приложением, которое требует аутентификации и состоит из разных частей (CMS, API, интерфейс), мы столкнулись с некоторыми проблемами с совместным использованием сеансов / файлов cookie / перекрестного происхождения Запросы. В конце концов, я подумал, что проще всего реализовать все в одном домене;
это вызвало некоторые проблемы со сборкой API в php. API ожидает, что в request_uri похожие / users / images вместо / api / users и / api / users. Мы думали, что решением будет простое переписывание, но почему-то request_uri не переписывается.
Вот настройка сервера:
server {
listen 9090;
server_name coda.dev;
access_log /usr/local/var/log/nginx/coda.access.log;
error_log /usr/local/var/log/nginx/coda.debug.log notice;
charset utf-8;
rewrite ^/(.*)/$ /$1 permanent;
location / {
proxy_pass http://localhost:9000;
}
location /api {
root /Volumes/HDD/Sites/opdrachten/CODAapi/laravel/public;
try_files $uri /index.php;
}
location ~/cms {
proxy_pass http://localhost:9000;
}
location ~ \.php {
fastcgi_pass 127.0.0.1:9091;
fastcgi_index index.php;
include /usr/local/etc/nginx/fastcgi.conf;
fastcgi_param DOCUMENT_ROOT /Volumes/HDD/Sites/opdrachten/CODAapi/laravel/public;
fastcgi_param SCRIPT_FILENAME /Volumes/HDD/Sites/opdrachten/CODAapi/laravel/public/index.php;
break;
}
}
Я также попытался добавить это, чтобы перезаписать request_uri:
fastcgi_param REQUEST_URI $uri?$args;
Но в результате каждый запрос получал файл request_uri index.php.
Итак, как я могу отправить все запросы, начинающиеся с / api, в каталог моего API и переписать request_uri, чтобы удалить / api из uri?