Негізгі мазмұнға өту

Nginx ішіндегі журналдардан IP-ды қалай шығаруға болады?



Бір жағдайды елестетіп көріңіз: сізде статистикалық 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 . Тікелей сәйкестік үшін басқа тұрақты өрнекті жазуыңыз қажет.




Сіз мақаланы қалай бағалайсыз?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 ( 2 дауыс, орташа 5.00- ден 5)
Жүктелуде ...

Пікір қосу

Сіздің электронды поштаңыз жарияланбайды.