Достаточно глупый вопрос, но как сделать не знаю.
Есть настроенные логи для всего nginx. Но я хочу все запросы, которые прилетают в /login.html логировать с определенным форматом (логировать тело запроса) в определенный файл.
Если в location /login.html нету try_files то прилетают запросы и логируются, но естественно с ошибкой 404.
Добавляю try_files, происходит внутренний редирект в nginx на index.php, т.к. login.html не существует (это вирт. страница в yii) и access_log перестает работать в этом location...
Как правильно писать логи определенного формата только в одном location ?
http {
log_format main '$remote_addr - $remote_user [$time_local] $scheme $server_name "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" $request_time "$http_cf_ray" "$ssl_protocol/$ssl_cipher"';
log_format postdata '$remote_addr - $remote_user [$time_local] $scheme $server_name "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" $request_time "$http_cf_ray" "$ssl_protocol/$ssl_cipher" '
'"$request_body"';
access_log syslog:server=unix:/dev/log,nohostname,facility=local7,tag=nginx_access,severity=info main;
error_log syslog:server=unix:/dev/log,nohostname,facility=local7,tag=nginx_error error;
# * * *
server {
# * * *
location /login.html {
try_files $uri $uri/ /index.php?$args;
access_log /var/log/nginx/login_html_postdata.log postdata;
}
# * * *
location ~ \.php$ {
# fastcgi
include conf.d/php7.1-fpm.inc;
}
}
}