Выбор ответа Middle Балансировка и nginx обновлено
Слеш в proxy_pass
Вопрос
Конфиг: location /api/ { proxy_pass http://backend/; }. Клиент запрашивает /api/users/1. Какой URI получит бэкенд?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: /users/1. Если в proxypass указан URI (даже просто /), часть запроса, совпавшая с location, заменяется на него: /api/ превращается в /, получается /users/1.
Варианты ответа
/users/1правильный ответ/api/users/1/api//users/1/
Разбор
Если в proxy_pass указан URI (даже просто /), часть запроса, совпавшая с location, заменяется на него: /api/ превращается в /, получается /users/1. Без слеша (proxy_pass http://backend;) бэкенд получил бы исходный /api/users/1. Эта разница частая причина 404 после настройки прокси.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.