@sokol1

Как настроить проксирование nginx по схеме id пользователя=ресурс?

Задача следующая:
Есть несколько серверов, на каждом из которых закреплены свои пользователи. Требуется сделать для всех пользователей одну точку входа (один host). Используются url вида http://mycloud.com/{user-id}/resource. В зависимости от user-id запрос должен маршрутизироваться на определенный бэкэнд сервер. Список пользователей и соответствующих им серверов хранится в базе.
Хочу использовать для маршрутизации nginx, но не знаю как его сконфигурировать. Ведь если прописывать location / proxy_pass для каждого пользователя в отдельности, то это будет оооочень большой config! Есть другой способ?
  • Вопрос задан
  • 262 просмотра
Пригласить эксперта
Ответы на вопрос 1
bigton
@bigton
Web-программист
Можете воспользоваться map для определения backend'а.
Я по cookie определяю на какой сервере отправлять запросы:
upstream backend {
    least_conn;
    server 1.1.1.1;
    server 2.2.2.2;
    server 3.3.3.3;
}

map $cookie_server $upstream {
    default backend;
    1 1.1.1.1;
    2 2.2.2.2;
    3 3.3.3.3;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы