Hello! On Fri, Nov 30, 2018 at 01:07:49PM +0300, CoDDoC via nginx-ru wrote:
> Существует ли в принципе возможность получить в какую-то переменную имя > бэкенд-сервера, выбранное в директиве 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 > страницы из соответствующего локейшена. > > Заранее благодарю за любые конструктивные идеи. http://nginx.org/r/split_clients -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru