В настоящее время у меня есть приложение Angular, которое получает данные из бэкэнда Symfony. При разработке я использовал нг служить
прокси-система сервера разработки для перенаправления /апи
, /Oauth-токен
и /СМИ
маршруты к внутреннему серверу, и это работало нормально.
Теперь, когда я хочу развернуть приложение на веб-сервере, я настроил сервер Nginx, который обслуживает статические файлы, сгенерированные встроенным приложением Angular. Поскольку сервер разработки больше не проксирует запросы, я должен делать это через файлы конфигурации Nginx, чтобы у меня был функциональный обратный прокси.
Что мне просто нужно, так это то, что если я запрошу что-то вроде ПОЛУЧИТЬ http://localhost/api/products/1
, этот запрос передается на ПОЛУЧИТЬ http://localhost:81/api/products/1
. Это должно быть одинаковым для всех других методов запроса: POST, PUT, PATCH и т. д.
Проблема в том, что я не могу написать файл conf, который соответствует моим потребностям для этого варианта использования. Лучшее, что я получаю, это ответ 302 или 405.
Вот файл conf, который у меня сейчас есть:
сервер {
имя_сервера локальный хост;
корень /var/www/webapp;
место расположения / {
try_files $uri $uri//index.html;
}
расположение ~ ^/(?:oauth-токен|api|носитель)/ {
proxy_pass http://localhost:81;
}
}
Бэкенд размещается на том же сервере и экземпляре nginx, что и фронтенд, но на другом порту (порт 81 вместо 80).
Я попытался разделить свой блок местоположения на 3 отдельных блока для каждого маршрута на случай, если мое регулярное выражение или прокси-проход были неправильными, но я получаю те же результаты:
расположение /API/ {
proxy_pass http://localhost:81/api/;
}
местоположение / токен oauth / {
proxy_pass http://localhost:81/oauth-token/;
}
Я также попытался удалить косую черту в конце URL-адреса прокси-сервера, чтобы увидеть, была ли проблема в этом, но безрезультатно.
Я пытался следовать советам, которые нашел в других сообщениях о сбое сервера, но, к сожалению, мне ничего не помогло.
Можете ли вы помочь мне настроить этот файл, чтобы эти запросы API передавались через прокси на мой внутренний сервер? Спасибо.