nginx: Добавьте к проксированному URL с proxy_pass

Я занимаюсь некоторыми проблемами прежней версии, где я должен реконфигурировать серверы, размещающие базирующееся приложение PHP. Одно из решений состояло в том, чтобы переехать от Apache на Nginx.

Теперь хосты приложений два вида ответов;

/some/path -> HTML templates
/api/some/path -> JSON

Приложение основано на Laravel. Теперь, у меня есть два виртуальных хоста, my.app.com и api.app.com. О чем я думал, как достойное решение состоит в том, чтобы иметь api.app.com проксируйте запросы к my.app.com с a /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;
}

Идея состоит в том, чтобы гарантировать что люди, пытающиеся ДОБИРАТЬСЯ от api.app.com/something на самом деле получите ответ от my.app.com/api/something Но это не работает. Я продолжаю получать исключения из приложения, говоря, что путь не может быть найден в маршрутах.

Кто-либо может сказать мне, что продолжается здесь?

-1
задан 24 November 2014 в 17:52
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;
}
0
ответ дан 5 December 2019 в 20:40

Теги

Похожие вопросы