Ответ
Стандартный формат логов nginx не указывает, какой именно location обработал запрос. Для этого нужно добавить пользовательскую переменную в конфигурацию.
Решение: Добавление переменной $location_name в log_format.
-
Определите кастомный формат лога в блоке
http:http { log_format location_log '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" ' 'location="$location_name"'; ... } -
Внутри каждого
locationустановите эту переменную и укажите использовать новый формат:server { access_log /var/log/nginx/access.log location_log; location /cash { set $location_name 'cash'; # ... конфигурация location } location /static { set $location_name 'static'; # ... конфигурация location } location /backend { set $location_name 'backend'; # ... конфигурация location } }
Результат: В каждой строке лога появится поле location="cash" (или static, backend), что позволит легко фильтровать и анализировать трафик по конкретным location'ам с помощью grep, awk или лог-агрегаторов (ELK, Loki).