jy166102 发表于 2018-11-9 09:50:42

CentOS7.4—最新版本nginx调优

  Nginx调优
  目录
  第一部分优化版本信息
  第二部分保持连接
  第三部分优化进程数
  第四部分日志分割
  第五部分网页压缩
  Nginx安装过程不再这里展示,请参照http://blog.51cto.com/12227558,下面直接进入调优
  第一部分优化版本信息
  ----------隐藏版本信息----------
  第一步:查看版本信息
  方法一:
  # curl -I 192.168.80.40

  方法二:Wireshark抓包
  Win7访问http://192.168.80.40/index.php
  (注意:要后缀带php文件,才能显示出php的信息)


  第二步:隐藏版本信息

[*]隐藏nginx版本  # vi /usr/local/nginx/conf/nginx.conf      //编辑主配置文件
  添加以下内容:

  保存退出
  # systemctl restart nginx   //重启nginx服务
[*]隐藏php信息  # vi /usr/local/php/lib/php.ini
  修改以下内容:

  保存退出
  # systemctl restart nginx   //重启nginx服务
  第三步:测试验证
  方法一:
  # curl -I 192.168.80.40

  方法二:Wireshark抓包
  访问:http://192.168.80.40/index.php

  //已成功隐藏
  ----------修改nginx版本信息---------
  (注意,此方法会把现有配置全部删除,建议刚搭建完nginx时使用)
  一:编辑配置文件
  # vi /opt/nginx-1.13.9/src/core/nginx.h
  源码目录下修改信息:

  保存退出
  二:删除安装文件目录并重新编译安装
  # cd /usr/local/
  # rm -rf nginx/       //删除nginx安装目录
  # cd /opt/nginx-1.13.9/       //进入nignx解压包目录
  #./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module          //定义配置
  # Make      //编译
  # make install       //安装
  # killall -1 nginx      //安全重启nginx服务
  # nginx             //启动nginx服务
  # netstat -anpt | grep nginx      //查看nginx运行状态
  三:重新访问http://192.168.80.10,抓包验证


  //伪装成功
  第二部分保持连接
  一: wireshark抓包查看连接配置

  二: 编辑配置文件
  # vi /usr/local/nginx/conf/nginx.conf
  编辑以下内容:
  keepalive_timeout65 180;      //以后者为准,可以在http\server\location设置
  client_header_timeout 80;       //等待客户端发送请求头的超时时间 超时会发送408错误
  client_body_timeout 80;      //设置客户端发送请求体超时时间

  保存退出
  (备注:keepalive_timeout第一个参数指定了与客户端的keep-alive连接超时时间,服务器将会在这个时间后关闭连接。可选的第二个参数指定了在响应头Keep-Alive:timeout=time中的time值。这个头能够让一些浏览器主动关闭连接,这样服务器就不必去关闭连接了。若没有这个参数,Nginx将不会发送Keep-Alive响应头)
  # service nginx restart   //重启nginx服务
  三: 抓包验证结果
  访问http://192.168.80.40

  用wireshark抓包

  //配置成功
  第三部分优化进程数
  将nginx服务原来由一个CPU核心处理,配置成由多个核心处理,增加处理效率
  # cat /proc/cpuinfo | grep "processor"   //查看本机处理器

  # ps aux | grep nginx

  # vi /usr/local/nginx/conf/nginx.conf      //编辑nginx主配置文件
  编辑以下内容:

  保存退出
  # nginx –t      //检查语法错误

  # killall -9 nginx            //结束nginx进程
  # service nginx start      //启动nginx服务
  # ps aux | grep nginx   //查看nginx进程

  第四部分日志分割
  Nginx没有专门的命令来执行日志分割,只能通过脚本实现
  # ls /usr/local/nginx/logs/      //查看默认日志

[*]编写日志分割脚本  # cd /usr/local/nginx/logs/
  # vi fenge.sh      //创建日志分割脚本
  #!/bin/bash
  #filename: fenge.sh
  D=$(date -d "-1 day" "+%Y%m%d")
  LOGS_PATH="/var/log/nginx"                   //指定分割日志目录
  PID_PATH="/usr/local/nginx/logs/nginx.pid"
  [ -d $LOGS_PATH ] || mkdir -p $LOGS_PATH      //创建分割日志文件目录(如果存在就不创建,不存在就创建)
  mv /usr/local/nginx/logs/access.log ${LOGS_PATH}/aa.com-access.log-$D   //移动并重命名分割日志文件
  kill -USR1 $(cat $PID_PATH)          //重建分割日志文件
  find $LOGS_PATH -mtime +30 | xargs rm –rf         //超过30天自动删除
  保存退出
[*]执行脚本,测试日志是否被分割  # sh fenge.sh       //执行脚本
  Win7访问http://192.168.80.40
  # ls /var/log/nginx/    //查看分割日志,按日期分割了日志文件

[*]做计划任务,定期分割日志  # crontab –e
  30 1* sh /root/fenge.sh
  (每天的凌晨1:30分执行/opt/fenge.sh脚本,进行日志分割)
  第五部分配置网页压缩

[*]修改Nginx的配置文件,加入压缩功能参数  # vi /usr/local/nginx/conf/nginx.conf
  gzipon;                  //开启gzip压缩
  gzip_buffers 4 64k;         //表示申请4个单位为16KB的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果
  gzip_http_version 1.1;         //设置识别http协议版本
  gzip_comp_level 2;         //指定gzip压缩比,压缩比1最小,处理速度最快;压缩比9最大,传输速度最快,但处理速度最慢,使用默认即可
  gzip_min_length 1k;          //设置允许压缩的页面最小字节数
  gzip_vary on;            //让前端的缓存服务器缓存经过gzip压缩的页面
  gzip_types text/pain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;      //压缩类型,指哪些网页文档启用压缩功能

  保存退出
[*]修改网页文件大小  # ls -lh /usr/local/nginx/html/       //查看html文件大小

  # truncate -s 10k /usr/local/nginx/html/index.html
  //由于压缩配置默认为最小1KB文件,将index.html放大超过1K

  # service nginx restart   //重启nginx服务
[*]验证  Win7访问http://192.168.80.40

  用wireshark抓包验证结果

  //压缩生效
  (注意,如果结果出不来,清除一下浏览器缓存)

页: [1]
查看完整版本: CentOS7.4—最新版本nginx调优