Ответ 1
Nginx не анализирует тело запроса клиента, если это действительно необходимо, поэтому он обычно не заполняет переменную $request_body
.
Исключения составляют:
- отправляет запрос прокси,
- или сервер fastcgi.
Поэтому вам действительно нужно либо добавить директивы proxy_pass
, либо fastcgi_pass
в ваш блок.
Самый простой способ - отправить его самому Nginx в качестве прокси-сервера, например, с этой конфигурацией:
location = /c.gif {
access_log logs/uaa_access.log client;
# add the proper port or IP address if Nginx is not on 127.0.0.1:80
proxy_pass http://127.0.0.1/post_gif;
}
location = /post_gif {
# turn off logging here to avoid double logging
access_log off;
empty_gif;
}
Если вы только ожидаете получить некоторые значения пары ключей, может быть хорошей идеей ограничить размер тела запроса:
client_max_body_size 1k;
client_body_buffer_size 1k;
client_body_in_single_buffer on;
Я также получил ошибки "405 недопустимых" при тестировании с помощью empty_gif;
и завитки (в браузере это было нормально), я переключил его на return 200;
, чтобы правильно протестировать с помощью curl.