Welcome! Log In Create A New Profile

Advanced

Вопрос о балансировке нагрузки.

CoDDoC via nginx-ru
November 30, 2018 05:08AM
Доброе время суток!

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

Задача такая.
Есть основной сервер example.com, на котором: nginx <=> php <=> БД
и несколько бэкендов-хранилок в том же домене, но в разных ДЦ (допустим, s1.example.com, s2.example.com и т.д.)
Соответственно:
upstream backends {
    server s1.example.com;
    server s2.example.com;
    server s3.example.com;
    .....
}
Пользователь авторизуется на основном сервере, получает сессию и куки.
Каждому пользователю выдаются куки с одинаковами именами, но разными значениями.
Кроме того, для каждого пользователя создаются хэши, привязанные к его сессии и кукам.

Требуется отдать с ОСНОВНОГО сервера html, содержащую ссылки вида:
- для пользователя A - <a href= 's1.example.com/path/<hash 1>/file'> ,
- для пользователя B - <a href= 's2.example.com/path/<hash 2>/file'> ,

После чего каждый из них тянет нужный файл с выбранной хранилки.

Т.е. не пробрасывать запрос на хранилку через proxy_pass backends, а только получить имя бэкенда, выбранного с учетом правил в upstream. И получив это имя в какую-то переменную, передать его в php, отвечающий за выдачу html страницы из соответствующего локейшена.

Заранее благодарю за любые конструктивные идеи.

--_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Вопрос о балансировке нагрузки.

CoDDoC via nginx-ru November 30, 2018 05:08AM

Re: Вопрос о балансировке нагрузки.

Maxim Dounin November 30, 2018 08:08AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 100
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready