The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"nginx не логирует тело POST запроса"
Отправлено novichok, 04-Апр-19 21:13 
Здравствуйте.
Прошу помочь и ткнуть носом в ошибку, четвертый вечер гуглю, доки на оф сайте читал, много всего перепробовал, но результат нулевой.

Надо писать в лог тело 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/ ответа не нашел, может не понял чего...


 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру