Android

Mengkonfigurasi kesalahan nginx dan mengakses log

[SOLVED] Session lost after redirect in CodeIgniter

[SOLVED] Session lost after redirect in CodeIgniter

Daftar Isi:

Anonim

Nginx adalah open source, HTTP berkinerja tinggi, dan server proxy terbalik yang bertanggung jawab untuk menangani beban beberapa situs terbesar di Internet. Saat mengelola server web NGINX, salah satu tugas yang paling sering Anda lakukan adalah memeriksa file log.

Mengetahui cara mengkonfigurasi dan membaca log sangat berguna ketika memecahkan masalah server atau aplikasi karena mereka memberikan informasi debugging yang terperinci.

Nginx menulis catatan kejadiannya dalam dua jenis log: log akses dan log kesalahan. Log akses menulis informasi tentang permintaan klien, dan log kesalahan menulis informasi tentang masalah server dan aplikasi.

Artikel ini menguraikan cara mengkonfigurasi dan membaca akses dan log kesalahan Nginx.

Mengkonfigurasi Log Akses

Setiap kali permintaan klien diproses, Nginx menghasilkan acara baru di log akses. Setiap catatan acara berisi stempel waktu dan mencakup berbagai informasi tentang klien dan sumber daya yang diminta. Log akses dapat menunjukkan kepada Anda lokasi pengunjung, halaman yang mereka kunjungi, berapa banyak waktu yang mereka habiskan di halaman, dan banyak lagi.

Arahan log_format memungkinkan Anda untuk menentukan format pesan yang dicatat. Arahan access_log memungkinkan dan menetapkan lokasi file log dan format yang digunakan.

Sintaks paling dasar dari direktif access_log adalah sebagai berikut:

access_log log_file log_format;

Di mana log_file adalah path lengkap ke file log, dan log_format adalah format yang digunakan oleh file log.

Log akses dapat diaktifkan baik di http , server , atau blok arahan location .

Secara default, log akses secara global diaktifkan di direktif http di dalam file konfigurasi Nginx utama.

/etc/nginx/nginx.conf

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

Untuk pemeliharaan yang lebih baik, disarankan untuk mengatur file log akses terpisah untuk setiap blok server. Arahan access_log diatur dalam direktif server menimpa set yang ada di arahan http (level yang 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;… } }

Jika tidak ada format log yang ditentukan, Nginx menggunakan format gabungan yang telah ditentukan yang terlihat seperti ini:

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

Untuk mengubah format logging baik menimpa pengaturan default atau menentukan yang baru. Misalnya untuk menentukan format logging baru bernama utama yang akan memperpanjang format gabungan dengan nilai yang menunjukkan header X-Forwarded-For menambahkan definisi berikut dalam direktif 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, tentukan namanya setelah file log seperti yang ditunjukkan di bawah ini:

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

Sementara log akses memberikan informasi yang sangat berguna. dibutuhkan ruang disk dan dapat memengaruhi kinerja server. Jika server Anda kekurangan sumber daya dan Anda memiliki situs web yang sibuk, Anda mungkin ingin menonaktifkan akses log. Untuk melakukan itu, off nilai direktif access_log :

access_log off;

Mengkonfigurasi Log Kesalahan

Nginx menulis pesan tentang aplikasi dan kesalahan server umum dalam file log kesalahan. Jika Anda mengalami kesalahan dalam aplikasi web Anda, log kesalahan adalah tempat pertama untuk memulai untuk mengatasi masalah.

Arahan error_log memungkinkan dan menetapkan lokasi dan tingkat keparahan log kesalahan. Itu mengambil bentuk berikut dan dapat diatur dalam http , server , atau blok location :

error_log log_file log_level

Parameter log_level menetapkan tingkat pencatatan. Berikut adalah level-level yang terdaftar berdasarkan tingkat keparahannya (dari rendah ke tinggi):

  • debug - Pesan debugging. info - Pesan informasi. notice - Pemberitahuan. warn - Peringatan. error - Kesalahan saat memproses permintaan. crit - Masalah kritis. Membutuhkan tindakan cepat. alert - Alerts. Tindakan harus segera diambil. emerg - Situasi darurat. Sistem dalam kondisi tidak dapat digunakan.

Setiap level log termasuk level yang lebih tinggi. Misalnya, jika Anda mengatur level log untuk warn , Nginx juga akan mencatat error , crit , alert , dan pesan yang emerg .

Ketika parameter log_level tidak ditentukan, standarnya adalah error .

Secara default, direktif error_log didefinisikan dalam direktif http di dalam file nginx.conf utama:

/etc/nginx/nginx.conf

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

Sama seperti dengan log akses, disarankan untuk mengatur file log kesalahan yang terpisah untuk setiap blok server, yang mengesampingkan pengaturan yang diwarisi dari tingkat yang lebih tinggi.

Misalnya, untuk mengatur log kesalahan domain.com untuk warn Anda akan menggunakan:

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

Setiap kali Anda memodifikasi file konfigurasi, Anda harus me-restart layanan Nginx agar perubahan diterapkan.

Lokasi File Log

Secara default pada sebagian besar distribusi Linux, seperti Ubuntu, CentOS, dan Debian, akses dan log kesalahan terletak di direktori /var/log/nginx .

Membaca dan Memahami File Log Nginx

Anda dapat membuka dan mem-parsing file log menggunakan perintah standar seperti cat , less , grep , cut , awk , dan sebagainya.

Berikut adalah contoh rekaman dari file log akses yang menggunakan format log Nginx log default:

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 uraikan apa arti setiap bidang catatan:

  • $remote_addr - 192.168.33.1 - Alamat IP klien yang mengajukan permintaan. $remote_user - - - Pengguna HTTP Authenticated. Ketika nama pengguna tidak disetel, bidang ini menunjukkan - . - - Waktu server lokal. "$request" - "GET / - Jenis permintaan, jalur dan protokol. $status - 200 - Kode respons server. $body_bytes_sent - 396 - Ukuran respons server dalam byte. "$http_referer" - "-" - URL rujukan. "$http_user_agent" - Mozilla/5.0… - Agen pengguna klien (browser web).

Gunakan perintah tail untuk menonton file log secara real-time:

tail -f access.log

Kesimpulan

File log memberi Anda informasi yang berguna tentang masalah server dan bagaimana pengunjung berinteraksi dengan situs web Anda.

Nginx memungkinkan Anda untuk mengkonfigurasi akses dan kesalahan log sesuai dengan kebutuhan Anda.

nginx