Bagaimana untuk mengkonfigurasi akses Nginx dan log ralat

WBOY
Lepaskan: 2023-05-16 08:10:05
ke hadapan
1855 orang telah melayarinya

Nginx ialah sumber terbuka, HTTP berprestasi tinggi dan pelayan proksi terbalik yang bertanggungjawab untuk mengendalikan beban beberapa tapak terbesar di Internet. Salah satu tugas paling biasa yang akan anda lakukan semasa menguruskan pelayan web NGINX ialah menyemak fail log.

Mengetahui cara mengkonfigurasi dan membaca log sangat berguna apabila menyelesaikan masalah pelayan atau isu aplikasi, kerana ia menyediakan maklumat penyahpepijatan terperinci.

Nginx menggunakan dua jenis log untuk merekodkan peristiwanya: log akses dan log ralat. Akses rekod pengelogan maklumat tentang permintaan pelanggan, dan pengelogan ralat merekodkan maklumat tentang masalah pelayan dan aplikasi.

Mengkonfigurasi log akses Nginx

Nginx akan menjana rekod baharu dalam log akses setiap kali permintaan pelanggan diproses. Setiap rekod acara mengandungi cap masa dan mengandungi pelbagai maklumat tentang pelanggan dan sumber yang diminta. Log akses boleh menunjukkan lokasi pelawat, halaman yang dilawati oleh pelawat, dsb. Arahan

log_format membolehkan anda mentakrifkan format pengelogan. Arahan access_log mendayakan dan menetapkan lokasi fail log dan format yang digunakan. Sintaks paling asas bagi arahan

access_log adalah seperti berikut:

access_log log_file log_format;
Salin selepas log masuk

di mana log_file ialah laluan penuh fail log dan log_format ialah format yang digunakan untuk fail log. Pengelogan akses boleh didayakan dalam konteks arahan http , server atau location.

Secara lalai, arahan http dalam fail konfigurasi utama Nginx mengkonfigurasi format log akses global.

http {
  ...
  access_log  /var/log/nginx/access.log;
  ...
}
Salin selepas log masuk

/etc/nginx/nginx.conf

Untuk kebolehselenggaraan yang lebih baik, adalah disyorkan untuk menyediakan fail log akses berasingan untuk setiap pelayan. Set arahan server dalam arahan access_log akan menimpa set http dalam arahan access_log.

http {
  ...
  access_log  /var/log/nginx/access.log;
  ...
  server {
    server_name domain.com
    access_log  /var/log/nginx/domain.access.log;
    ...
  }
}
Salin selepas log masuk

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

Jika tiada format log ditentukan, Nginx akan menggunakan format gabungan yang dipratentukan seperti berikut:

log_format combined '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';
Salin selepas log masuk

Untuk menukar format pengelogan, gantikan tetapan lalai atau tentukan yang baharu. Contohnya, untuk mentakrifkan format pengelogan baharu bernama main yang akan memanjangkan format X-Forwarded-For dengan menambah nilai pengepala combined, tambah arahan definisi berikut dalam http atau server:

rreee

Untuk menggunakan format log baharu, nyatakan nama fail log selepasnya, seperti ini:

log_format  custom  '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
Salin selepas log masuk

Log akses memberikan maklumat yang sangat berguna walaupun. Tetapi ia mengambil ruang cakera dan boleh menjejaskan prestasi pelayan. Jika pelayan anda kekurangan sumber dan tapak anda sibuk, anda mungkin mahu melumpuhkan log akses. Untuk melakukan ini, tetapkan nilai arahan access_log kepada off . Secara teorinya anda tidak akan mengalami situasi ini, Nginx akan memadam fail log sebelumnya secara automatik:

access_log  /var/log/nginx/access.log custom;
Salin selepas log masuk

Log ralat konfigurasi

Nginx menulis aplikasi dan mesej ralat pelayan umum ke fail log ralat . Jika anda menghadapi ralat dalam aplikasi web anda, log ralat adalah tempat pertama anda mula menyelesaikan masalah tersebut. Arahan error_log mendayakan dan menetapkan lokasi dan tahap keterukan log ralat. Ia mengambil format berikut dan boleh ditetapkan dalam konteks http , server atau location: Parameter

access_log off;
Salin selepas log masuk

log_level menetapkan tahap pengelogan. Berikut ialah tahap yang disenaraikan daripada tahap keterukan terendah hingga tertinggi:

error_log log_file log_level
Salin selepas log masuk

Setiap tahap log termasuk tahap yang lebih tinggi. Contohnya, jika anda menetapkan tahap log kepada warn , Nginx juga akan log error , crit , alert dan emerg mesej. Apabila parameter log_level tidak ditentukan, lalainya ialah error. Secara lalai, arahan error_log ditakrifkan dalam konteks arahan http di dalam fail nginx.conf utama:

debug
info
notice
warn
error
crit
alert
emerg
Salin selepas log masuk

/etc/nginx/nginx.conf adalah sama dengan log akses dan disyorkan untuk ditetapkan untuk setiap pelayan Fail log ralat berasingan yang mengatasi tetapan peringkat lebih tinggi seperti konteks arahan http. Sebagai contoh, untuk menetapkan log ralat untuk domain.com kepada warn , anda akan menggunakan:

http {
  ...
  error_log  /var/log/nginx/error.log;
  ...
}
Salin selepas log masuk

Setiap kali anda mengubah suai fail konfigurasi, anda mesti memuat semula perkhidmatan Nginx untuk perubahan berkuat kuasa.

Lokasi fail log

Dalam kebanyakan pengedaran Linux seperti Ubuntu, CentOS dan Debian. Secara lalai, akses dan log ralat terletak dalam direktori /var/log/nginx.

Baca dan fahami fail log Nginx

Anda boleh menggunakan arahan seperti cat, less, grep, cut, awk untuk membuka dan menghuraikan fail log nginx . Berikut ialah rekod fail log akses menggunakan format log Nginx lalai:

192.168.33.1 - - [15/Oct/2019:19:41:46 +0000] "GET / HTTP/1" 200 396 "-" "Mozilla/0 (X11; Linux x86_64) AppleWebKit/536 (KHTML, like Gecko) Chrome/38120 Safari/536"
Salin selepas log masuk

让我们细分Nginx日志文件记录的每个字段意味着什么:

  • $remote_addr – 192.168.33.1 -发出请求的客户端的IP地址。

  • $remote_user  – - -HTTP身份验证用户。未设置用户名时,此字段显示 - 。

  • [$time_local] – [15/Oct/2019:19:41:46 +0000]

本地服务器时间。

  • "$request"  – "GET / HTTP/1.1" -请求类型,路径和协议。

  • $status  – 200 -服务器响应代码。

  • $body_bytes_sent  – 396 -服务器响应的大小(以字节为单位)。

  • "$http_referer"  – "-" -引荐网址。

  • "$http_user_agent"  – Mozilla/5.0 ... -客户端的用户代理(网络浏览器)。

使用 tail 命令实时观看日志文件记录: tail -f access.log

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi akses Nginx dan log ralat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan