Nginx常用功能配置实战

规范化Nginx配置文件
将server块打包为文件利用include导入配置文件。
优化后如下:

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    include extra/www.conf;   #虚拟网站配置信息统一放在了当前的extra目录下
    include extra/mail.conf;
    include extra/status.conf;

}

[root@localhost nginx]# tree conf/zxy.com/
conf/extra/
├── mail.conf
├── status.conf
└── www.conf

0 directories, 3 files
[root@localhost nginx]# cat conf/extra/www.conf
server {
listen 80;
server_name www.yunjisuan.com;
location / {
root /var/www/html/wwwcom;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
}
Nginx状态信息功能实战
确认编译时是否设定了此模块(–with-http_stub_status_module模块就是状态信息模块)

  root@localhost nginx]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.10.2
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) 
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx-1.10.2/ --with-http_stub_status_module --with-http_ssl_module

若没有安装,利用命令
./configure --prefix=/var/local/src    --with-http_stub_status_module 
make
mv  /var/local/src/sbin/nginx /var/local/src/sbin/nginx_bak
cp   objs/nginx   /var/local/src/sbin
/var/local/src/sbin/nginx    -t
重启服务,即模块添加完毕

设定信息模块配置

[root@localhost nginx]# cat conf/zxy.conf/status.conf 
##status


server{

    listen  80;
    server_name  status.yunjisuan.com;
    location / {
       stub_status  on;   #开启状态信息功能
           access_log   off;  #不记录访问日志

         }
}  

##说明
状态信息模块配置方式和搭建虚拟网站类似需要占用一个域名来访问
[root@localhost nginx]# curl status.yunjisuan.com
Active connections: 2 #表示Nginx正在处理的活动连接2个
server accepts handled requests
 39 39 41 
Reading: 0 Writing: 1 Waiting: 1 

在这里插入图片描述

第一个server表示Nginx启动到现在2共处理了39个连接 第二个accepts表示Nginx启动到现在共成功创建了39次握手
请求丢失数=(握手数-连接数),可以看出,本次状态显示没有丢失请求。 第三个handled requests,表示总共处理了41次请求。
Reading为Nginx读取到客户端的Header信息数 Writing为Nginx返回给客户端的Header信息数
Waiting为Nginx已经处理完正在等候下一次请求指令的驻留连接。在开启keep-alive的情况下,这个值等于active -(reading+writing)

增加错误日志

> 常见的日志级别【debug|info|notice|warn|error|crit|alert|emerg】
> 生产场景一般是warn|error|crit这三个级别之一,注意不要配置info等较低级别,会带来巨大磁盘I/O消耗。
> error_log的默认值为:
worker_processes  1;
error_log  logs/error.log;    #非常简单,一般增加此行即可
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    include extra/www.conf;
    include extra/mail.conf;
    include extra/status.conf;

}

Nginx访问日志轮询切割
默认情况下Nginx会把所有的访问日志生成到一个指定的访问日志文件access.log里,但这样一来,时间长了就会导致日志个头很大,不利于日志的分析和处理,因此,有必要对Nginx日志,按天或按小时进行切割,使其分成不同的文件保存。
在html/相同目录下创建目录date并编写脚本runlog.sh(目录自己修改)

#!/bin/bash
   LOGPATH=/var/local/src/logs/access.log  #将要改名字的目录设置为变量
   BASEPATH=/var/local/src/date/$(date -d yesterday +%Y%m)  #计算每年的每月的目
录创建并整合
   mkdir -p /var/local/src/date/$(date -d yesterday +%Y%m)  #创建每年每月目录
   bak=$BASEPATH/$(date -d yesterday +%d%H%M).www.zxy.com.access.log   #将备份>    文件名写好存入变量
   mv $LOGPATH $bak   #剪切
   touch $LOGPATH
   kill -USR1 `cat /var/local/src/logs/nginx.pid`  #将日志转存入新的日志文件中

然后添加定时任务:crontab

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值