Здравствуйте.
Прошу помочь и ткнуть носом в ошибку, четвертый вечер гуглю, доки на оф сайте читал, много всего перепробовал, но результат нулевой.Надо писать в лог тело POST запроса пришедшего в nginx.
Можно не заморачиваться и использовать ngrep, но это крайний вариант.
В nginx полный ноль, только начинаю его изучать.
имею установленный по дефолту nginx( apt-get install nginx) в debian_9
вот что добавил в конфиг:
------------------------
log_format postdata escape=json ' "$request" $status'
' [REQEUST BODY]: [$request_body] ';
server {
listen 127.0.0.1:80 default_server;
server_name localhost;
location / {
access_log /var/log/nginx/access.log postdata;
}
}
------------------------
отправляю пост:
curl -H "Content-Type: application/json" -X POST -d '{"user":"bob","pass":"123"}' http://localhost
получаю в ответ ошибку 405 Not Allowed.
в лог пишется:
::1 - - [04/Apr/2019:20:36:48 +0300] "POST / HTTP/1.1" 405 173 "-" "curl/7.52.1"
Если удалить location:
---------------------------------
log_format postdata escape=json ' "$request" $status'
' [REQEUST BODY]: [$request_body] ';
server {
listen 127.0.0.1:80 default_server;
server_name localhost;
}
access_log /var/log/nginx/access.log postdata;
---------------------------------
в лог придет:
escape=json "POST / HTTP/1.1" 405 [REQEUST BODY]: [-] -
вроде то что надо, но тела запроса нет.
может nginx не обрабатывает тело запроса если запрос вызвал ошибку...
модуль echo установлен:
nginx -V | grep echo
--add-dynamic-module=/build/nginx-0TiIP5/nginx-1.10.3/debian/modules/nginx-echo
error_page 405 =200 $uri; ничего не дает, рузультат тот-же
--------
-------------------------------
error_page 405 = @app;
location @app {
proxy_pass http://localhost:8080;
}
--------------------------------
так-же дает ошибку 405, на 'nc -lp 8080 ' ничего не пришло,
в логе:
escape=json "POST / HTTP/1.1" 405 [REQEUST BODY]: [-] -
я понимаю только то что я ничего не понимаю в nginx, ведь не могут конфиги просто не работать...
Подскажите как логировать POST, только nginx-ом?
тут https://nginx.org/ru/docs/ ответа не нашел, может не понял чего...