Android

Mengkonfigurasi ralat nginx dan log akses

Logging | Nginx

Logging | Nginx

Isi kandungan:

Anonim

Nginx adalah sumber terbuka, HTTP berprestasi tinggi dan pelayan proksi terbalik yang bertanggungjawab untuk mengendalikan beban beberapa laman web terbesar di Internet. Semasa mengurus pelayan web NGINX, salah satu tugas yang paling sering anda lakukan ialah menyemak fail log.

Mengetahui cara mengkonfigurasi dan membaca log adalah sangat berguna apabila menyelesaikan masalah pelayan atau aplikasi kerana mereka memberikan maklumat penyahtentuan terperinci.

Nginx menulis rekod peristiwanya dalam dua jenis log: log masuk dan log ralat. Log akses menulis maklumat mengenai permintaan klien, dan log kesalahan menulis maklumat tentang masalah pelayan dan aplikasi.

Artikel ini menggariskan cara mengkonfigurasi dan membaca log masuk dan ralat Nginx.

Mengkonfigurasi Log Akses

Apabila permintaan klien diproses, Nginx menghasilkan peristiwa baru dalam log akses. Setiap rekod acara mengandungi cap waktu dan termasuk pelbagai maklumat mengenai klien dan sumber yang diminta. Log akses boleh menunjukkan lokasi pengunjung, halaman yang mereka lawati, berapa banyak masa yang mereka belanjakan pada halaman, dan banyak lagi.

Arahan log_format membolehkan anda menentukan format mesej log. Arahan access_log membolehkan dan menetapkan lokasi fail log dan format yang digunakan.

Sintaks yang paling asas arahan access_log adalah seperti berikut:

access_log log_file log_format;

Di mana log_file adalah laluan penuh ke fail log, dan log_format adalah format yang digunakan oleh fail log.

Log masuk boleh didayakan sama ada dalam blok arahan http , server , atau location .

Secara lalai, log masuk didayakan secara global dalam arahan http di dalam fail konfigurasi Nginx utama.

/etc/nginx/nginx.conf

http {… access_log /var/log/nginx/access.log;… }

Untuk pemeliharaan yang lebih baik, disyorkan untuk menetapkan fail log akses berasingan untuk setiap blok pelayan. Arahan access_log ditetapkan dalam arahan server mengatasi yang ditetapkan dalam arahan http (lebih tinggi).

/etc/nginx/conf.d/domain.com.conf

http {… access_log /var/log/nginx/access.log;… server { server_name domain.com access_log /var/log/nginx/domain.access.log;… } }

Sekiranya tiada format log ditentukan Nginx menggunakan format gabungan yang dipratentukan yang kelihatan seperti ini:

log_format combined '$remote_addr - $remote_user ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';

Untuk menukar format pembalakan sama ada mengatasi tetapan lalai atau mentakrifkan yang baru. Contohnya untuk menentukan format pembalakan baru yang dinamakan utama yang akan melanjutkan format gabungan dengan nilai yang menunjukkan tajuk X-Forwarded-For menambah takrifan berikut dalam arahan http atau server :

log_format custom '$remote_addr - $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

Untuk menggunakan format baru, nyatakan namanya selepas fail log seperti ditunjukkan di bawah:

access_log /var/log/nginx/access.log custom;

Walaupun log akses menyediakan maklumat yang sangat berguna. ia mengambil ruang cakera dan boleh menjejaskan prestasi pelayan. Sekiranya pelayan anda rendah pada sumber dan anda mempunyai tapak web yang sibuk, anda mungkin mahu melumpuhkan log akses. Untuk melakukan itu, tetapkan nilai arahan access_log untuk off :

access_log off;

Mengkonfigurasi Log Ralat

Nginx menulis mesej mengenai aplikasi dan kesilapan pelayan umum dalam fail log ralat. Jika anda mengalami kesilapan dalam aplikasi web anda, log ralat adalah tempat pertama untuk memulakan untuk menyelesaikan masalah.

Directive error_log membolehkan dan menetapkan lokasi dan tahap keterukan log kesalahan. Ia mengambil bentuk berikut dan boleh ditetapkan dalam blok http , server , atau location :

error_log log_file log_level

Parameter log_level menetapkan tahap pembalakan. Di bawah adalah tahap yang disenaraikan oleh keterukan mereka (dari rendah ke tinggi):

  • debug - Menyahpepijat mesej. info - Mesej maklumat. notice - Notis. warn - Amaran. error - Kesilapan semasa memproses permintaan. crit - Masalah kritikal. Memerlukan tindakan segera. alert - Isyarat. Tindakan mesti diambil dengan serta-merta. emerg - Keadaan kecemasan. Sistem ini dalam keadaan yang tidak boleh digunakan.

Setiap tahap log termasuk peringkat yang lebih tinggi. Sebagai contoh, jika anda menetapkan tahap log untuk warn , Nginx juga akan log error , crit , alert , dan mesej emerg .

Apabila parameter log_level tidak ditentukan, ia gagal untuk error .

Secara lalai, arahan ralat_log ditakrifkan dalam arahan http di dalam fail nginx.conf utama:

/etc/nginx/nginx.conf

http {… error_log /var/log/nginx/error.log;… }

Sama seperti log masuk, disyorkan untuk menetapkan fail log ralat berasingan bagi setiap blok pelayan, yang mengatasi tetapan yang diwarisi dari tahap yang lebih tinggi.

Sebagai contoh, untuk menetapkan log kesalahan domain.com untuk warn anda akan gunakan:

http {… error_log /var/log/nginx/error.log;… server { server_name domain.com error_log /var/log/nginx/domain.error.log warn;… } }

Apabila anda mengubah suai fail konfigurasi, anda perlu memulakan semula perkhidmatan Nginx untuk perubahan yang akan dilaksanakan.

Lokasi Fail Log

Secara lalai pada kebanyakan pengedaran Linux, seperti Ubuntu, CentOS, dan Debian, log masuk dan ralat berada di direktori /var/log/nginx .

Membaca dan Memahami Fail Log Nginx

Anda boleh membuka dan mengurai fail log menggunakan perintah standard seperti cat , less , grep , cut , awk , dan sebagainya.

Berikut ialah rekod contoh dari fail log akses yang menggunakan lalai menggabungkan format log Nginx:

192.168.33.1 - - "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"

Mari kita memecahkan apa yang setiap bidang rekod bermakna:

  • $remote_addr - 192.168.33.1 - Alamat IP klien yang membuat permintaan. $remote_user - - - Pengguna $remote_user HTTP. Apabila nama pengguna tidak ditetapkan, medan ini dipaparkan - . - - Masa pelayan tempatan. "$request" - "GET / - Jenis permintaan, laluan dan protokol. $status - 200 - Kod tindak balas pelayan. $body_bytes_sent - 396 - Saiz sambutan pelayan dalam bait. "$http_referer" - "-" - URL rujukan. "$http_user_agent" - Mozilla/5.0… - Ejen pengguna klien (penyemak imbas web).

Gunakan arahan tail untuk menonton fail log secara real-time:

tail -f access.log

Kesimpulannya

Fail log memberikan anda maklumat berguna mengenai isu pelayan dan bagaimana pengunjung berinteraksi dengan laman web anda.

Nginx membolehkan anda mengkonfigurasi log akses dan ralat mengikut keperluan anda.

nginx