чтобы было, как вы хотите, надо чтобы nginx сначала принял запрос
полностью, извлек из тела параметр и только после этого спроксировал.
на практике nginx проксирует запрос постепенно.

8 июля 2015 г., 15:53 пользователь Michael Kechinov <s...@mkechinov.ru> написал:
> Добрый день.
>
> Есть сервер на NGINX. У него за бэкендом находятся несколько шардов.
> Запросы к NGINX приходят с переменной code. В переменной хранится строка
> случайных символов.
>
> Есть файл с таблицей типа:
> 1e3c37d24147296e4993029da7ad0b 0;
> 56c0334642d423e642f163e06f985f 0;
> e0252dffdc9bb45183340209c53efa 0;
> 0f89f5209b84486787797f42bb3939 1;
> ced412f1c43cda14c8bdfedb353cd5 1;
>
> Слева code, справа значение переменной, которое я хочу устанавливать в
> соответствии с кодом.
>
> Прописано это все вот так:
> http {
>     ...
>     map_hash_max_size 8192;
>     map $arg_code $api_shard {
>         include /home/user/nginx_mapping.conf;
>     }
>     ...
> }
>
> Когда я выполняю GET-запросы, переменная устанавливается и все хорошо.
> Когда я выполняю POST-запросы, переменная не устанавливается, т.к. в GET не
> пришел аргумент code.
> Как можно получить доступ к аргументу в POST запросе, чтобы выставить нужную
> переменную?
> Заставить все проекты прописать в адрес ко всем POST-запросам аргумент
> ?code=xyz будет несколько проблематично.
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить