
Я имею дело с некоторыми устаревшими проблемами, где мне нужно перенастроить серверы, на которых размещено приложение на основе PHP. Одним из решений был переход с Apache на Nginx.
Теперь приложение поддерживает два вида ответов;
/some/path -> HTML templates
/api/some/path -> JSON
Приложение основано на Laravel. Теперь у меня есть два виртуальных хоста, my.app.com
и api.app.com
. Я подумал, что приличным решением будет проксировать api.app.com
запросы my.app.com
с /api
добавлением к пути запроса. Итак;
GET api.app.com/user -> NGINX PROXY -> my.app.com/api/user
Я не эксперт в настройке Nginx, но вот что, по-моему, должно сработать:
location / {
proxy_pass http://my.app.com:8888/api;
proxy_set_header X-Real-IP $remote_addr;
}
Идея заключается в том, чтобы гарантировать, что люди, пытающиеся GET из, api.app.com/something
на самом деле получат ответ от my.app.com/api/something
Но это не работает. Я продолжаю получать исключения от приложения, говорящие о том, что путь не может быть найден в маршрутах.
Кто-нибудь может мне объяснить, что здесь происходит?
решение1
Совет отhttps://serverfault.com/a/586607:
location ~ /(?<path>.*) {
proxy_pass http://my.app.com:8888/api/$path;
proxy_set_header X-Real-IP $remote_addr;
}