Rumah pembangunan bahagian belakang tutorial php 错误log配置和访问log配置以及log记录

错误log配置和访问log配置以及log记录

Jul 28, 2016 am 08:29 AM
access http log nbsp quot

错误log配置和访问log配置
[root@slave nginx]# vi /etc/nginx/nginx.conf
worker_processes  1;
error_log /var/log/nginx/error.log;
events {
     worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    log_format comman '$remote_addr - $remote_user [$time_local] "$request" '
                     '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent" "$request_body" "$request_time"';
    server {
        listen       80;
        server_name  www.wolf.com wolf.com;
        location / {
            root   html/www;
            index  index.html index.htm;
        }
    access_log  /var/log/nginx/www.log  comman;
    }
    server {
        listen       80;
        server_name  bbs.wolf.com;
        location / {
            root   html/bbs;
            index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  blog.wolf.com;
        location / {
            root   html/blog;
            index  index.html index.htm;
        }
    }
   ##status
   server {
        listen       80;
        server_name  status.wolf.com;
        location / {
            stub_status on;
            access_log off;
        }
    }
}
配置完毕,测试如下
[root@slave nginx]# curl www.wolf.com
http://www.wolf.com
[root@slave nginx]# tail -f www.log
192.168.0.203 - - [11/Jun/2016:16:26:52 +0800] "GET / HTTP/1.1" 200 20 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2" "-" "0.000"

通过浏览器访问测试

============================================================

日志对于统计排错来说非常有利的。
本文总结了nginx日志相关的配置如access_log、log_format、open_log_file_cache
、log_not_found、log_subrequest、rewrite_log、error_log。
nginx有一个非常灵活的日志记录模式。每个级别的配置可以有各自独立的访问日志。
日志格式通过log_format命令来定义。
ngx_http_log_module是用来定义请求日志格式的。
1. access_log指令
语法: access_log path [format [buffer=size [flush=time]]];
access_log path format gzip[=level] [buffer=size] [flush=time];
access_log syslog:server=address[,parameter=value] [format];
access_log off;
默认值: access_log logs/access.log combined;
配置段: http, server, location, if in location, limit_except
gzip压缩等级。
buffer设置内存缓存区大小。
flush保存在缓存区中的最长时间。
不记录日志:access_log off;
使用默认combined格式记录日志:access_log logs/access.log 或 access_log logs/access.log combined;
2、log_format指令
语法: log_format name string …;
默认值: log_format combined “…”;
配置段: http
name表示格式名称,string表示等义的格式。
log_format有一个默认的无需设置的combined日志格式,相当于apache的combined日志格式,如下所示:
log_format combined '$remote_addr - $remote_user [$time_local]'
                    ' "$request" $status $body_bytes_sent'
                    ' "$http_referer" "$http_user_agent" ';
如果nginx位于负载均衡器,squid,nginx反向代理之后,web服务器无法直接获取到客户端真实的IP地址了。
 $remote_addr获取反向代理的IP地址。反向代理服务器在转发请求的http头信息中,可以增加X-Forwarded-For信息,
 用来记录 客户端IP地址和客户端请求的服务器地址。
 PS: 获取用户真实IP 参见http://www.ttlsa.com/html/2235.html如下所示:
 log_format porxy '$http_x_forwarded_for - $remote_user [$time_local]'
                  ' "$request" $status $body_bytes_sent '
                  ' "$http_referer" "$http_user_agent" ';
日志格式允许包含的变量注释如下:
$remote_addr, $http_x_forwarded_for 记录客户端IP地址
$remote_user 记录客户端用户名称
$request 记录请求的URL和HTTP协议
$status 记录请求状态
$body_bytes_sent 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。
$bytes_sent 发送给客户端的总字节数。
$connection 连接的序列号。
$connection_requests 当前通过一个连接获得的请求数量。
$msec 日志写入时间。单位为秒,精度是毫秒。
$pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。
$http_referer 记录从哪个页面链接访问过来的
$http_user_agent 记录客户端浏览器相关信息
$request_length 请求的长度(包括请求行,请求头和请求正文)。
$request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。
$time_iso8601 ISO8601标准格式下的本地时间。
$time_local 通用日志格式下的本地时间。
[warning]发送给客户端的响应头拥有“sent_http_”前缀。 比如$sent_http_content_range。[/warning]
实例如下:
http {
 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                                   '"$status" $body_bytes_sent "$http_referer" '
                                   '"$http_user_agent" "$http_x_forwarded_for" '
                                   '"$gzip_ratio" $request_time $bytes_sent $request_length';
 
 log_format srcache_log '$remote_addr - $remote_user [$time_local] "$request" '
                        '"$status" $body_bytes_sent $request_time $bytes_sent $request_length '
                        '[$upstream_response_time] [$srcache_fetch_status] [$srcache_store_status] [$srcache_expire]';
 
 open_log_file_cache max=1000 inactive=60s;
 
 server {
 server_name ~^(www\.)?(.+)$;
 access_log logs/$2-access.log main;
 error_log logs/$2-error.log;
 
 location /srcache {
 access_log logs/access-srcache.log srcache_log;
 }
 }
}
 
3. open_log_file_cache指令
语法: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
open_log_file_cache off;
默认值: open_log_file_cache off;
配置段: http, server, location
对于每一条日志记录,都将是先打开文件,再写入日志,然后关闭。可以使用open_log_file_cache来设置日志文件缓存(默认是off),格式如下:
参数注释如下:
max:设置缓存中的最大文件描述符数量,如果缓存被占满,采用LRU算法将描述符关闭。
inactive:设置存活时间,默认是10s
min_uses:设置在inactive时间段内,日志文件最少使用多少次后,该日志文件描述符记入缓存中,默认是1次
valid:设置检查频率,默认60s
off:禁用缓存
实例如下:
open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;
4. log_not_found指令
语法: log_not_found on | off;
默认值: log_not_found on;
配置段: http, server, location
是否在error_log中记录不存在的错误。默认是。
5. log_subrequest指令
语法: log_subrequest on | off;
默认值: log_subrequest off;
配置段: http, server, location
是否在access_log中记录子请求的访问日志。默认不记录。
6. rewrite_log指令
由ngx_http_rewrite_module模块提供的。用来记录重写日志的。对于调试重写规则建议开启。 Nginx重写规则指南
语法: rewrite_log on | off;
默认值: rewrite_log off;
配置段: http, server, location, if
启用时将在error log中记录notice级别的重写日志。
7. error_log指令
语法: error_log file | stderr | syslog:server=address[,parameter=value] [debug | info | notice | warn | error | crit | alert | emerg];
默认值: error_log logs/error.log error;
配置段: main, http, server, location
配置错误日志。
 
 
本文总结了nginx日志相关的配置如access_log、log_format、open_log_file_cache
、log_not_found、log_subrequest、rewrite_log、error_log。
nginx有一个非常灵活的日志记录模式。每个级别的配置可以有各自独立的访问日志。
日志格式通过log_format命令来定义。
ngx_http_log_module是用来定义请求日志格式的。
1. access_log指令
语法: access_log path [format [buffer=size [flush=time]]];
access_log path format gzip[=level] [buffer=size] [flush=time];
access_log syslog:server=address[,parameter=value] [format];
access_log off;
默认值: access_log logs/access.log combined;
配置段: http, server, location, if in location, limit_except
gzip压缩等级。
buffer设置内存缓存区大小。
flush保存在缓存区中的最长时间。
不记录日志:access_log off;
使用默认combined格式记录日志:access_log logs/access.log 或 access_log logs/access.log combined;
2、log_format指令
语法: log_format name string …;
默认值: log_format combined “…”;
配置段: http
name表示格式名称,string表示等义的格式。
log_format有一个默认的无需设置的combined日志格式,相当于apache的combined日志格式,如下所示:
log_format combined '$remote_addr - $remote_user [$time_local]'
                    ' "$request" $status $body_bytes_sent'
                    ' "$http_referer" "$http_user_agent" ';
如果nginx位于负载均衡器,squid,nginx反向代理之后,web服务器无法直接获取到客户端真实的IP地址了。
 $remote_addr获取反向代理的IP地址。反向代理服务器在转发请求的http头信息中,可以增加X-Forwarded-For信息,
 用来记录 客户端IP地址和客户端请求的服务器地址。
 PS: 获取用户真实IP 参见http://www.ttlsa.com/html/2235.html如下所示:
 log_format porxy '$http_x_forwarded_for - $remote_user [$time_local]'
                  ' "$request" $status $body_bytes_sent '
                  ' "$http_referer" "$http_user_agent" ';
日志格式允许包含的变量注释如下:
$remote_addr, $http_x_forwarded_for 记录客户端IP地址
$remote_user 记录客户端用户名称
$request 记录请求的URL和HTTP协议
$status 记录请求状态
$body_bytes_sent 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。
$bytes_sent 发送给客户端的总字节数。
$connection 连接的序列号。
$connection_requests 当前通过一个连接获得的请求数量。
$msec 日志写入时间。单位为秒,精度是毫秒。
$pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。
$http_referer 记录从哪个页面链接访问过来的
$http_user_agent 记录客户端浏览器相关信息
$request_length 请求的长度(包括请求行,请求头和请求正文)。
$request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。
$time_iso8601 ISO8601标准格式下的本地时间。
$time_local 通用日志格式下的本地时间。
[warning]发送给客户端的响应头拥有“sent_http_”前缀。 比如$sent_http_content_range。[/warning]
实例如下:
http {
 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                                   '"$status" $body_bytes_sent "$http_referer" '
                                   '"$http_user_agent" "$http_x_forwarded_for" '
                                   '"$gzip_ratio" $request_time $bytes_sent $request_length';
 
 log_format srcache_log '$remote_addr - $remote_user [$time_local] "$request" '
                        '"$status" $body_bytes_sent $request_time $bytes_sent $request_length '
                        '[$upstream_response_time] [$srcache_fetch_status] [$srcache_store_status] [$srcache_expire]';
 
 open_log_file_cache max=1000 inactive=60s;
 
 server {
 server_name ~^(www\.)?(.+)$;
 access_log logs/$2-access.log main;
 error_log logs/$2-error.log;
 
 location /srcache {
 access_log logs/access-srcache.log srcache_log;
 }
 }
}
 
3. open_log_file_cache指令
语法: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
open_log_file_cache off;
默认值: open_log_file_cache off;
配置段: http, server, location
对于每一条日志记录,都将是先打开文件,再写入日志,然后关闭。可以使用open_log_file_cache来设置日志文件缓存(默认是off),格式如下:
参数注释如下:
max:设置缓存中的最大文件描述符数量,如果缓存被占满,采用LRU算法将描述符关闭。
inactive:设置存活时间,默认是10s
min_uses:设置在inactive时间段内,日志文件最少使用多少次后,该日志文件描述符记入缓存中,默认是1次
valid:设置检查频率,默认60s
off:禁用缓存
实例如下:
open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;
4. log_not_found指令
语法: log_not_found on | off;
默认值: log_not_found on;
配置段: http, server, location
是否在error_log中记录不存在的错误。默认是。
5. log_subrequest指令
语法: log_subrequest on | off;
默认值: log_subrequest off;
配置段: http, server, location
是否在access_log中记录子请求的访问日志。默认不记录。
6. rewrite_log指令
由ngx_http_rewrite_module模块提供的。用来记录重写日志的。对于调试重写规则建议开启。 Nginx重写规则指南
语法: rewrite_log on | off;
默认值: rewrite_log off;
配置段: http, server, location, if
启用时将在error log中记录notice级别的重写日志。
7. error_log指令
语法: error_log file | stderr | syslog:server=address[,parameter=value] [debug | info | notice | warn | error | crit | alert | emerg];
默认值: error_log logs/error.log error;
配置段: main, http, server, location
配置错误日志。
 
 

以上就介绍了 错误log配置和访问log配置以及log记录,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melumpuhkan aplikasi latar belakang dalam Windows 11_Windows 11 tutorial untuk melumpuhkan aplikasi latar belakang Bagaimana untuk melumpuhkan aplikasi latar belakang dalam Windows 11_Windows 11 tutorial untuk melumpuhkan aplikasi latar belakang May 07, 2024 pm 04:20 PM

1. Buka tetapan dalam Windows 11. Anda boleh menggunakan pintasan Win+I atau mana-mana kaedah lain. 2. Pergi ke bahagian Apl dan klik Apl & Ciri. 3. Cari aplikasi yang anda ingin halang daripada berjalan di latar belakang. Klik butang tiga titik dan pilih Pilihan Lanjutan. 4. Cari bahagian [Background Application Permissions] dan pilih nilai yang dikehendaki. Secara lalai, Windows 11 menetapkan mod pengoptimuman kuasa. Ia membolehkan Windows mengurus cara aplikasi berfungsi di latar belakang. Sebagai contoh, sebaik sahaja anda mendayakan mod penjimat bateri untuk mengekalkan bateri, sistem akan menutup semua apl secara automatik. 5. Pilih [Jangan sekali-kali] untuk menghalang aplikasi daripada berjalan di latar belakang. Sila ambil perhatian bahawa jika anda perasan bahawa program tidak menghantar pemberitahuan kepada anda, gagal mengemas kini data, dsb., anda boleh

Cara menukar pdf deepseek Cara menukar pdf deepseek Feb 19, 2025 pm 05:24 PM

DeepSeek tidak dapat menukar fail terus ke PDF. Bergantung pada jenis fail, anda boleh menggunakan kaedah yang berbeza: dokumen biasa (Word, Excel, PowerPoint): Gunakan Microsoft Office, LibreOffice dan perisian lain untuk dieksport sebagai PDF. Imej: Simpan sebagai PDF Menggunakan Image Viewer atau Perisian Pemprosesan Imej. Halaman Web: Gunakan fungsi "Print Into PDF" penyemak imbas atau laman web yang berdedikasi ke alat PDF. Format yang tidak biasa: Cari penukar yang betul dan tukarnya ke PDF. Adalah penting untuk memilih alat yang betul dan membangunkan pelan berdasarkan keadaan sebenar.

Tidak boleh membenarkan akses kepada kamera dan mikrofon dalam iPhone Tidak boleh membenarkan akses kepada kamera dan mikrofon dalam iPhone Apr 23, 2024 am 11:13 AM

Adakah anda mendapat "Tidak dapat membenarkan akses kepada kamera dan mikrofon" apabila cuba menggunakan apl itu? Biasanya, anda memberikan kebenaran kamera dan mikrofon kepada orang tertentu berdasarkan keperluan untuk disediakan. Walau bagaimanapun, jika anda menafikan kebenaran, kamera dan mikrofon tidak akan berfungsi dan sebaliknya akan memaparkan mesej ralat ini. Menyelesaikan masalah ini adalah sangat asas dan anda boleh melakukannya dalam satu atau dua minit. Betulkan 1 – Sediakan Kebenaran Kamera, Mikrofon Anda boleh memberikan kebenaran kamera dan mikrofon yang diperlukan secara terus dalam tetapan. Langkah 1 – Pergi ke tab Tetapan. Langkah 2 – Buka panel Privasi & Keselamatan. Langkah 3 – Hidupkan kebenaran "Kamera" di sana. Langkah 4 – Di dalam, anda akan menemui senarai apl yang telah meminta kebenaran untuk kamera telefon anda. Langkah 5 – Buka "Kamera" apl yang ditentukan

Apakah maksud medan dalam java Apakah maksud medan dalam java Apr 25, 2024 pm 10:18 PM

Di Java, "medan" ialah ahli data dalam kelas atau antara muka yang digunakan untuk menyimpan data atau keadaan. Atribut medan termasuk: jenis (boleh menjadi mana-mana jenis data Java), hak akses, statik (kepunyaan kelas dan bukannya contoh), muktamad (tidak berubah) dan sementara (tidak bersiri). Medan digunakan untuk menyimpan maklumat keadaan kelas atau antara muka, seperti menyimpan data objek dan mengekalkan keadaan objek.

Bagaimanakah mekanisme refleksi Java mengubah suai tingkah laku kelas? Bagaimanakah mekanisme refleksi Java mengubah suai tingkah laku kelas? May 03, 2024 pm 06:15 PM

Mekanisme refleksi Java membolehkan program mengubah suai tingkah laku kelas secara dinamik tanpa mengubah suai kod sumber. Dengan mengendalikan kelas melalui objek Kelas, anda boleh membuat contoh melalui newInstance(), mengubah suai nilai medan peribadi, memanggil kaedah peribadi, dsb. Refleksi harus digunakan dengan berhati-hati, walau bagaimanapun, kerana ia boleh menyebabkan tingkah laku dan isu keselamatan yang tidak dijangka serta mempunyai overhed prestasi.

Bagaimana untuk merentas domain iframe dalam vue Bagaimana untuk merentas domain iframe dalam vue May 02, 2024 pm 10:48 PM

Cara untuk menyelesaikan isu merentas domain iframe dalam Vue: CORS: Dayakan sokongan CORS dalam pelayan bahagian belakang dan gunakan XMLHttpRequest atau ambil API untuk menghantar permintaan CORS dalam Vue. JSONP: Muatkan skrip JSONP secara dinamik dalam Vue menggunakan titik akhir JSONP dalam pelayan hujung belakang. Pelayan proksi: Sediakan pelayan proksi untuk memajukan permintaan, gunakan pustaka pihak ketiga (seperti axios) dalam Vue untuk menghantar permintaan dan menetapkan URL pelayan proksi.

Apakah rupa kayu memori? Apakah rupa kayu memori? Apr 21, 2024 pm 01:01 PM

Apakah rupa modul memori komputer Ini ialah gambaran keseluruhan kad grafik dan modul memori dalam komputer. Kad grafik bebas komputer dimasukkan ke dalam slot kad grafik, dengan kipas, dan modul memori berada di dalam slot modul memori pada motherboard komputer, berbentuk seperti selari segi empat tepat hijau. Modul memori komputer riba adalah berbeza daripada modul memori desktop, dan ia tidak boleh digunakan secara bergantian. Perbezaan rupa 1: Memori desktop adalah langsing, dengan panjang 13-14 cm. 2: Memori buku nota lebih pendek, kira-kira lima sentimeter. Memori adalah jambatan dalam komputer, bertanggungjawab untuk pertukaran data antara pemproses dan perkakasan seperti cakera keras, papan induk, dan kad grafik. Bulatan merah dalam perjalanan ialah memory stick, bersebelahan dengan kipas CPU dan dipasang pada memory stick. Lihat, kayu memori komputer kelihatan seperti ini. Gunakan pemutar skru untuk membuka penutup komputer meja Lingkaran merah di tengah ialah modul memori. Apakah kayu memori?

Jenis pengecualian biasa dan langkah pembaikan mereka dalam pembangunan fungsi Java Jenis pengecualian biasa dan langkah pembaikan mereka dalam pembangunan fungsi Java May 03, 2024 pm 02:09 PM

Jenis pengecualian biasa dan langkah pembaikan mereka dalam pembangunan fungsi Java Semasa pembangunan fungsi Java, pelbagai pengecualian mungkin ditemui, yang menjejaskan pelaksanaan fungsi yang betul. Berikut ialah jenis pengecualian biasa dan langkah pembaikannya: 1. Perihalan NullPointerException: Dilemparkan apabila mengakses objek yang belum dimulakan. Betulkan: Pastikan anda menyemak objek untuk bukan nol sebelum menggunakannya. Contoh kod: cuba{Stringname=null;System.out.println(name.length());}catch(NullPointerExceptione){

See all articles