Проксировать все запросы на внутренний сервер

Проксировать все запросы на внутренний сервер

В настоящее время у меня есть приложение Angular, которое получает данные из бэкенда Symfony. При разработке я использовал ng serveсистему прокси-сервера разработки для перенаправления маршрутов /api, /oauth-tokenи /mediaна бэкенд-сервер, и это работало отлично.

Теперь, когда я хочу развернуть приложение на веб-сервере, я настраиваю сервер Nginx, который обслуживает статические файлы, сгенерированные построенным приложением Angular. Поскольку сервер разработки больше не может проксировать запросы, мне приходится делать это через файлы conf Nginx, чтобы у меня был функциональный обратный прокси.

Мне просто нужно, чтобы если я запрошу что-то вроде GET http://localhost/api/products/1, этот запрос был проксирован в GET http://localhost:81/api/products/1. Это должно быть одинаково для всех других методов запроса: POST, PUT, PATCH и т. д.

Проблема в том, что я не могу написать файл conf, который бы подходил для моих нужд в этом варианте использования. Лучшее, что я получаю, это ответ 302 или 405.

Вот файл конфигурации, который у меня есть на данный момент:

server {
    server_name localhost;
    root /var/www/webapp;

    location / {
        try_files $uri $uri/ /index.html;
    }

    location ~ ^/(?:oauth-token|api|media)/ {
        proxy_pass http://localhost:81;
    }
}

Бэкэнд размещается на том же сервере и экземпляре nginx, что и фронтэнд, но на другом порту (порт 81 вместо 80).

Я попробовал разделить свой блок местоположения на 3 отдельных блока для каждого маршрута на случай, если мое регулярное выражение или прокси-пароль окажутся неверными, но я получил те же результаты:

    location /api/ {
        proxy_pass http://localhost:81/api/;
    }

    location /oauth-token/ {
        proxy_pass http://localhost:81/oauth-token/;
    }

Я также попытался удалить завершающие слеши в конце URL-адреса прокси-сервера, чтобы проверить, не в этом ли проблема, но безрезультатно.

Я попробовал следовать советам, которые нашел в других постах на Server Fault, но, к сожалению, ни один из них мне не помог.

Можете ли вы помочь мне настроить этот файл так, чтобы эти запросы API проксировались на мой внутренний сервер? Спасибо.

Связанный контент