helldweller
@helldweller
PornOps

Nginx. access_log в location с try_files как?

Достаточно глупый вопрос, но как сделать не знаю.
Есть настроенные логи для всего 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;
    }
}
}
  • Вопрос задан
  • 494 просмотра
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Примерно так
location /login.html {
    rewrite ^ /index.php break;
    include conf.d/php7.1-fpm.inc;
    access_log /var/log/nginx/login_html_postdata.log postdata;
}


Смысл в том, что бы остаться в этом location
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы