设为首页 收藏本站
查看: 2732|回复: 2

[经验分享] CentOS7.4—最新版本nginx调优

[复制链接]

尚未签到

发表于 2018-4-10 09:53:27 | 显示全部楼层 |阅读模式
                                                Nginx调优
目录
第一部分  优化版本信息
第二部分  保持连接
第三部分  优化进程数
第四部分  日志分割
第五部分  网页压缩
Nginx安装过程不再这里展示,请参照http://blog.51cto.com/12227558,下面直接进入调优
第一部分  优化版本信息
----------隐藏版本信息----------
第一步:查看版本信息
方法一:
[iyunv@localhost ~]# curl -I 192.168.80.40
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
方法二:Wireshark抓包
Win7访问http://192.168.80.40/index.php
(注意:要后缀带php文件,才能显示出php的信息)
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
第二步:隐藏版本信息
  • 隐藏nginx版本
    [iyunv@localhost ~]# vi /usr/local/nginx/conf/nginx.conf      //编辑主配置文件
    添加以下内容:
    watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
    保存退出
    [iyunv@localhost ~]# systemctl restart nginx   //重启nginx服务
  • 隐藏php信息
    [iyunv@localhost ~]# vi /usr/local/php/lib/php.ini
    修改以下内容:
    watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
    保存退出
    [iyunv@localhost ~]# systemctl restart nginx   //重启nginx服务
第三步:测试验证
方法一:
[iyunv@localhost ~]# curl -I 192.168.80.40
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
方法二:Wireshark抓包
访问:http://192.168.80.40/index.php
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
//已成功隐藏
----------修改nginx版本信息---------
(注意,此方法会把现有配置全部删除,建议刚搭建完nginx时使用)
一:编辑配置文件
[iyunv@localhost ~]# vi /opt/nginx-1.13.9/src/core/nginx.h
源码目录下修改信息:
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
保存退出
二:删除安装文件目录并重新编译安装
[iyunv@localhost ~]# cd /usr/local/
[iyunv@localhost local]# rm -rf nginx/       //删除nginx安装目录
[iyunv@localhost local]# cd /opt/nginx-1.13.9/       //进入nignx解压包目录
[iyunv@localhost nginx-1.13.9]#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module          //定义配置
[iyunv@localhost nginx-1.13.9]# Make        //编译
[iyunv@localhost nginx-1.13.9]# make install       //安装
[iyunv@localhost nginx-1.13.9]# killall -1 nginx      //安全重启nginx服务
[iyunv@localhost nginx-1.13.9]# nginx             //启动nginx服务
[iyunv@localhost nginx-1.13.9]# netstat -anpt | grep nginx      //查看nginx运行状态
三:重新访问http://192.168.80.10,抓包验证
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
//伪装成功
第二部分  保持连接
一: wireshark抓包查看连接配置
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
二: 编辑配置文件
[iyunv@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
编辑以下内容:
keepalive_timeout  65 180;      //以后者为准,可以在httpserverlocation设置
client_header_timeout 80;       //等待客户端发送请求头的超时时间 超时会发送408错误
client_body_timeout 80;        //设置客户端发送请求体超时时间
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
保存退出
(备注:keepalive_timeout第一个参数指定了与客户端的keep-alive连接超时时间,服务器将会在这个时间后关闭连接。可选的第二个参数指定了在响应头Keep-Alive:timeout=time中的time值。这个头能够让一些浏览器主动关闭连接,这样服务器就不必去关闭连接了。若没有这个参数,Nginx将不会发送Keep-Alive响应头)
[iyunv@localhost ~]# service nginx restart     //重启nginx服务
三: 抓包验证结果
访问http://192.168.80.40
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
用wireshark抓包
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
//配置成功
第三部分  优化进程数
将nginx服务原来由一个CPU核心处理,配置成由多个核心处理,增加处理效率
[iyunv@localhost ~]# cat /proc/cpuinfo | grep "processor"     //查看本机处理器
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
[iyunv@localhost ~]# ps aux | grep nginx
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
[iyunv@localhost ~]# vi /usr/local/nginx/conf/nginx.conf      //编辑nginx主配置文件
编辑以下内容:
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
保存退出
[iyunv@localhost ~]# nginx –t      //检查语法错误
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
[iyunv@localhost ~]# killall -9 nginx            //结束nginx进程
[iyunv@localhost ~]# service nginx start        //启动nginx服务
[iyunv@localhost ~]# ps aux | grep nginx     //查看nginx进程
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
第四部分  日志分割
Nginx没有专门的命令来执行日志分割,只能通过脚本实现
[iyunv@localhost ~]# ls /usr/local/nginx/logs/      //查看默认日志
  • 编写日志分割脚本
    [iyunv@localhost ~]# cd /usr/local/nginx/logs/
    [iyunv@localhost 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天自动删除
    保存退出
  • 执行脚本,测试日志是否被分割
    [iyunv@localhost ~]# sh fenge.sh       //执行脚本
    Win7访问http://192.168.80.40
    [iyunv@localhost logs]# ls /var/log/nginx/    //查看分割日志,按日期分割了日志文件
    watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
  • 做计划任务,定期分割日志
    [iyunv@localhost logs]# crontab –e
    30 1   * sh /root/fenge.sh
    (每天的凌晨1:30分执行/opt/fenge.sh脚本,进行日志分割)
第五部分  配置网页压缩
  • 修改Nginx的配置文件,加入压缩功能参数
    [iyunv@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
    gzip  on;                  //开启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;      //压缩类型,指哪些网页文档启用压缩功能
    watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
    保存退出
  • 修改网页文件大小
    [iyunv@localhost ~]# ls -lh /usr/local/nginx/html/       //查看html文件大小
    watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
    [iyunv@localhost ~]# truncate -s 10k /usr/local/nginx/html/index.html     
    //由于压缩配置默认为最小1KB文件,将index.html放大超过1K
    watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
    [iyunv@localhost ~]# service nginx restart     //重启nginx服务
  • 验证
    Win7访问http://192.168.80.40
    watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
    用wireshark抓包验证结果
    watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
    //压缩生效
    (注意,如果结果出不来,清除一下浏览器缓存)

                                       


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-448523-1-1.html 上篇帖子: Nginx由于TLS支持版本配置过低造成不能够正常访问Upstream服... 下篇帖子: nginx优化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表