Доброе время суток!

Существует ли в принципе возможность получить в какую-то переменную имя 
бэкенд-сервера, выбранное в директиве 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

Reply via email to