Бір жағдайды елестетіп көріңіз: сізде статистикалық ip бар және сіз көп және сайтты редакциялаумен айналысасыз. Сонымен қатар, сұраулардағы қателерді немесе осалдылықты тексерулерді мезгіл-мезгіл бақылауға тура келеді. Сіздің IP-мен көптеген жазбалардың болуы журналдарды қарауды қиындатады.
Nginx нұсқасында қол жетімді шартты енгізудің көмегімен, 1.7.0 нұсқасынан бастап, келушінің IP-тін тексеріп, оны журнал файлдарына жазуға болмайды. Шынында да, егер сіздің IP-ді тіркеу қажет болмаса, неге бұл?
Мұндай ерекшелікті қосу үшін, map_module негізінде шартты жазба жасауыңыз қажет. Шартты жазбаны есептеу нәтижесі 0-ге тең болса, журналда жазылмайды. Ереже келесідей болады:
map $ remote_addr $ loggable { «127.0.0.1» 0; «:: 1» 0; әдепкі 1; }
Яғни әдепкі нәтиже 1, ал көрсетілген ip - 0 және олар журналға жазылмайды. Протоколдың 4 және 6 нұсқалары қолдау көрсетіледі, мұнда бірінші айнымалы қосылатын клиенттің мекенжайы болып табылады. Екінші айнымалы кіру журналының параметрлерінде жазылуы керек.
access_log /var/log/nginx/access.log аралас if = $ loggable;
Карталар блогын nginx конфигурациясының http
деңгейінде де, server
деңгейінде де көрсетуге болады.
Журналдардан басқа деректерді шығару
IP-ті нақты тіркеуді ажырату көптеген адамдардың бір ғана мысалы болып табылады. Стандарттыдан түрлі айнымалыларды пайдалануға болады.
Мысал ретінде error.html бет журналдарына жаза отырып, өшірейік. Ол үшін блокты жасаңыз:
map $ request_uri $ loggable { ~ * error.html 0; әдепкі 1; }
Жоғарыда айтылғандай, if параметрі access_log параметріне дәлел ретінде жазыңыз. Nginx қайта іске қосылғаннан кейін error.html үшін барлық сұранымдар жазылмайды. Түр түрлендіру error.html?q=search
. Тікелей сәйкестік үшін басқа тұрақты өрнекті жазуыңыз қажет.