Warunkowe logowanie w Nginx
Przetłumaczone automatycznie z angielskiego. Przeczytaj oryginał
Logowanie całego ruchu HTTP jest często zbędne. Dotyczy to zwłaszcza stron, które zawierają nie tylko treść tekstową, ale też wszelkiego rodzaju dodatkowe komponenty, takie jak skrypty JavaScript, arkusze stylów, obrazy, fonty itd. Możesz wskazać, co chcesz logować, na zasadzie włączania, ale znacznie łatwiej zrobić to przez warunkową selekcję negatywną. Najpierw zdefiniuj format logu, następnie utwórz warunkowe mapowanie, a na koniec określ logger ze zmienną decyzyjną. Na przykład:
log_format mylogformat '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$gzip_ratio"';
map $request_uri $loggable {
default 1;
~*\.(ico|css|js|gif|jpg|jpeg|png|svg|woff|ttf|eot)$ 0;
}
access_log /var/log/nginx/access.log mylogformat if=$loggable;W ten sposób nie będziemy logować żadnych dodatkowych zasobów, a w logu zostaną tylko zwykłe strony. Będzie to bardziej przydatne do dalszej analizy ruchu niż ręczne odfiltrowywanie tych rzeczy.