Доброе время суток!
Существует ли в принципе возможность получить в какую-то переменную имя
бэкенд-сервера, выбранное в директиве 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
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx-ru