网络规划设计师待遇/好的seo平台
1.nginx功能,可以作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。在使用nginx过程中我们除了要使用nginx自身的功能之外,我们还需要让它使用起来更加得心应手和舒服,这时我们可以自己配置nginx日志显示,实现服务监听,访问统计等。一个好的nginx日志配置方便我们对服务的监控,负载均衡和session共享可以方便我们横向扩展服务,日志分割使我们更容易区分每天服务的访问情况。具体配置如下
1.nginx配置日志为json格式,方便其它服务抓取数据,实现访问监听
#配置日志为json格式log_format main '{"@timestamp":"$time_local","host":"$server_addr","clientip":"$remote_addr","remote_user":"$remote_user","request":"$request","http_user_agent":"$http_user_agent","size":"$body_bytes_sent","responsetime":"$request_time","upstreamtime":"$upstream_response_time","upstreamhost":"$upstream_addr","http_host":"$host","url":"$uri","domain":"$host","xff":"$http_x_forwarded_for","referer":"$http_referer","status":"$status"}';
2.nginx配置日志按照天分割,配置在server里
#日志按照天分割if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})"){set $year $1;set $month $2;set $day $3;set $hour $4;set $minutes $5;set $seconds $6;}access_log logs/nginx_access_$year-$month-$day.log main;
3.nginx配置负载均衡,使用ip_hash实现session共享
#负载均衡,使用ip_hash实现session共享upstream dianyu_net_server {server 102.13.22.223:8080;server 102.13.22.224:8080;server 102.13.22.225:8080;ip_hash;}
4.nginx全部配置如下
#配置启动用户为root
user root;
worker_processes 1;events {worker_connections 1024;
}http {#配置日志为json格式log_format main '{"@timestamp":"$time_local","host":"$server_addr","clientip":"$remote_addr","remote_user":"$remote_user","request":"$request","http_user_agent":"$http_user_agent","size":"$body_bytes_sent","responsetime":"$request_time","upstreamtime":"$upstream_response_time","upstreamhost":"$upstream_addr","http_host":"$host","url":"$uri","domain":"$host","xff":"$http_x_forwarded_for","referer":"$http_referer","status":"$status"}';#不生效#access_log logs/access.log main;#1、转发的日志查看include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;#负载均衡实现session共享,缺少配置流量分配和健康检查upstream dianyu_net_server {server 102.13.22.223:8080;server 102.13.22.224:8080;server 102.13.22.225:8080;ip_hash;}server {listen 80;server_name 127.0.0.1;location / {proxy_pass http://dianyu_net_server;gzip on; #开启gzip增加访问速度gzip_min_length 1k; #设置允许压缩的页面最小字节数,超过1k的文件会被压缩gzip_buffers 16 64k; #获取多少内存用于缓存压缩结果gzip_http_version 1.1; #识别http协议的版本gzip_comp_level 6; #gzip压缩比(1~9),越小压缩效果越差,但是越大处理越慢,所以一般取中间值gzip_types text/plain application/x-javascript text/css application/xml image/jpeg image/gif image/png; #对特定的MIME类型生效,js和css文件会被压缩gzip_vary on; #设置为on会在Header里增加 "Vary: Accept-Encoding"gzip_disable "MSIE [1-6]\."; #IE6不使用gzipgzip_proxied any; #代理结果数据的压缩反向代理使用proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#proxy_set_header X-Forwarded-For $http_x_forwarded_for;proxy_set_header Host $http_host;proxy_connect_timeout 100;proxy_read_timeout 600;proxy_send_timeout 600;proxy_buffer_size 64k;proxy_buffers 4 32k;proxy_busy_buffers_size 64k;proxy_temp_file_write_size 64k;}#日志按照天分割if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})"){set $year $1;set $month $2;set $day $3;set $hour $4;set $minutes $5;set $seconds $6;}access_log logs/nginx_access_$year-$month-$day.log main;} }
nginx日志字段解释,参数明细
$remote_addr | 客户端ip地址(代理服务器,显示代理服务ip) |
$http_x_forwarded_for | 可以记录客户端IP,通过代理服务器来记录客户端的ip地址 |
$remote_user | 用户记录远程客户端的用户名称(一般为‘-’) |
$time_local | 用具记录访问时间和时区 |
$status | 响应状态码 ‘404’页面找不到 ‘200’成功等 |
$request_time | 整个请求的总时间,从接收用户请求的第一个字节到发送完响应数据的时间,即包括接收请求数据时间,程序响应时间,输出响应数据时间 |
$bytes_sent | 传输给客户端的字节数 |
$body_bytes_sent | 给客户端发送的文件主题内容字节数,响应头不计算在内 |
$request_length | 请求的长度(包括请求的地址,http请求头和请求主体) |
$http_referer | url跳转来源,用来记录从哪个页面链接访问过来的 |
$upstream_addr | 后台提供服务的地址(即转发处理的目标地址) |
$upstream_response_time | 从nginx向后端建立连接开始到接受完数据然后关闭连接为止的时间 |
$http_user_agent | 用户所使用的代理(一般为浏览器) |
$request | 用于记录请求的url以及请求方法 |
$request_body | 客户端的请求主体,此变量可以在location中使用,将请求主体通过proxy_pass,fastcgi_pass,uwsgi_pass和scgi_pass传递给下一级的代理 |
$args | 请求中的参数值 |
$uri | 请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令修改 |
$request_uri | 这个变量等于包含一些客户端请求参数的原始URI,它无法修改 |
$remote_port | 客户端端口 |