nginx (二)模块说明及日志

1.nginx功能模块说明
Nginx功能模块 模块说明

ngx_http_core_module 包括一些核心的http参数配置,对应Nginx的配置为区块部分
ngx_http_access_module 访问控制模块,用来控制网站用户对Nginx的访问 ngx_http_gzip_module
压缩模块,对Nginx返回的数据压缩,属于性能优化模块 ngx_http_fastcgi_module
fastcgi模块和动态应用相关的模块,例如PHP ngx_http_proxy_module proxy代理模块
ngx_http_upstream_module 负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查
ngx_http_rewrite_module URL地址重写模块 ngx_http_limit_conn_module
限制用户并发链接及请求数据模块 ngx_http_limit_req_module 根据定义的key限制Nginx请求过程的速率
ngx_http_log_module 访问日志模块,以指定的格式记录Nginx客户访问日志等信息
ngx_http_auth_basic_module Web认证模块,设置Web用户通过账号密码访问Nginx
ngx_http_ssl_module ssl模块,用于加密的http连接.如https
ngx_http_stub_status_module 记录Nginx基本访问状态信息等的模块

有关核心功能模块的详细信息地址为: http://nginx.org/en/docs/ngx_core_module.html
在这里插入图片描述
在这里插入图片描述

2.配置文件说明:

worker_processes   1;   #worker进程的数量
events  {   #事件区块开始
     worker_connections  1024;  #每个worker进程支持的最大连接数
} #事件区块结束
http  {   #Http区块开始
       include   mime.types;    #Nginx支持的媒体类型文件包含
       default_type   application/octet-stream;   #默认的媒体类型
       sendfile    on;  #开启高效传输模式
       keepalive_timeout   65;  #连接超时
       server {   #第一个Server区块开始,表示一个独立的虚拟主机站点
                listen    80;    #提供服务的端口,默认80
                server_name   localhost;   #提供服务的域名主机名
                location  / {
                      root   html;   #站点的目录,相对于nginx安装目录
                      index    index.html   index.htm;  #默认的首页文件,多个空格分开
                }  #第一个Location区块结束
               error_page   500  502   503   504  /50x.html;#出现对于的http状态码时显示页面
               location = /50x.html {   #location区块开始,访问50x.html
                     root   html;   指定对应的站点目录为html
               }
       }
}# http区块结束

2.1 进程数*连接数 = 并发数 如下支持并发 = 1 * 1024 =1024
2.2 虚拟主机在Nginx软件使用一个server { } 标签来标示一个虚拟主机

3.Nginx错误日志配置

  错误日志级别【 debug | info | notice | warn | error | crit | alert | emerg 】
  级别越高记录的信息会越少,生产场景一般是warn |error |crit 这三个级别之一
  注意:不要配置info等较低的级别,会带来巨大的磁盘I/O消耗
  error_log的默认值
  #default:  error_log  logs/error.log   error;  #前面标示 中间位置  后面级别
  可以放置的标签段为:
  #context: main,  http,  server, location
  location  / {
                  root   html;   
                  error  logs/error.log   error;
                  index    index.html   index.htm;
  }  
  1. Nginx访问日志配置
    系统默认访问日志配置:

    #log_format main '$remote_addr - r e m o t e u s e r [ remote_user [ remoteuser[time_local] “$request” ’

    '$status b o d y b y t e s s e n t " body_bytes_sent " bodybytessent"http_referer" ’

    ‘“ h t t p u s e r a g e n t " " http_user_agent" " httpuseragent""http_x_forwarded_for”’;

    系统默认访问日志配置:

access_log logs/access.log main;
参数说明:
$remote_addr 记录访问网站的客户端地址
$http_x_forwarded_for 当前端有代理服务器时,设置Web节点记录客户端地址的配置,
此参数生效的前提是代理服务器上也要进行相关的x_forward_for设置
$remote_user 远程客户端用户名称
$time_local 记录访问时间与时区
$request 用户的http请求请求起始行信息
$status http状态码,记录请求返回的状态,例如:200,404,301等
$body_bytes_sents 服务器发送给客户端的响应body字节数
$http_referer 记录此次请求是从哪个链接访问过来的,可以根据referer进行防盗链设置
$http_user_agent 记录客户端访问信息,例如:浏览器,手机客户端等

配置如下:

    http模块中新增日志格式配置:
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    server {
                  listen 80;
                  server_name  status.etiantian.org;
                  location  /  {
                         root   html;
                         index    index.html   index.htm;
                 }
                 access_log   logs/access.log   main;
     }
  日志格式:

在这里插入图片描述
日志内容:
在这里插入图片描述
对应说明:

   $remote_addr 对应的真实日志里的10.0.0.100  即客户端的IP
   $remote_user 对应的是第二个中杠"-", 没有远程用户,所以用"-"填充。
   [$time_local] 对应的是[05/Apr/2015:12:16:00+0800]
   "$request"  对应的是"GET/HTTP/1.1" 
   $status对应的是200状态码,200是正常访问
   $body_bytes_sent  对应的是25字节,响应body的大小
   "$http_referer"对应的是"-"  直接打开的域名浏览,因此,referer没有值
   "$http_user_agent" 对应的是"Mozilla/5.0(Windows  NT 6.1;WOW64) Apple...."
   "$http_x_forwarded_for"对应的是"-",因此Web服务器没有使用代理,因此此处为"-"

可以在记录日志参数中加上buffer和flush选项,这样做会在高并发场景下提升网站访问性能,加该选项命令如下:    

在这里插入图片描述

5.实现日志的切割功能

 mkdir   /server/scripts/
 cat  >> nginx_cut_log.sh << EOF
 cd   /application/nginx/logs
 /bin/mv   www_access.log   www_access_$(date  +%F  -d  '-1day').log
 /application/nginx/sbin/nginx  -s   reload

内容用rsync同步到备份服务器

#rsync  ....  to  backup server
#del  date   before  7  day  移除7天前的数据
#find  ....
EOF;

执行:
/bin/sh /server/scripts/nginx_cut_log.sh

crontab  -e
00  00   *  *   *  /bin/sh  /server/scripts/nginx_cut_log.sh >/dev/null  2>&1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值