热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

centos7.4配置nginxphp,CentOS7.4—最新版本nginx调优

Nginx调优目录第一部分优化版本信息第二部分保持连接第三部分优化进程数第四部分日志分割第五部分网页压缩Nginx安装过程不再这里展示,请参照https:blog.5

Nginx调优

目录

第一部分 优化版本信息

第二部分 保持连接

第三部分 优化进程数

第四部分 日志分割

第五部分 网页压缩

Nginx安装过程不再这里展示,请参照https://blog.51cto.com/12227558,下面直接进入调优

第一部分 优化版本信息

----------隐藏版本信息----------

第一步:查看版本信息

方法一:

[root@localhost ~]# curl -I 192.168.80.40

9020670ebe11f715e27a86cf8941e0b8.png

方法二:Wireshark抓包

Win7访问http://192.168.80.40/index.php

(注意:要后缀带php文件,才能显示出php的信息)

b548b32cda3e7f166b38c82bd804c38b.png

f9e2b2d2c6028e3927c4159aed6c5b16.png

第二步:隐藏版本信息

隐藏nginx版本

[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf //编辑主配置文件

添加以下内容:

a07f01321b58424ec2ab1aef398648c3.png

保存退出

[root@localhost ~]# systemctl restart nginx //重启nginx服务

隐藏php信息

[root@localhost ~]# vi /usr/local/php/lib/php.ini

修改以下内容:

a3d3e03ac17151cb85208acf27f1beb2.png

保存退出

[root@localhost ~]# systemctl restart nginx //重启nginx服务

第三步:测试验证

方法一:

[root@localhost ~]# curl -I 192.168.80.40

7af79f6220cf0b21fef4a9ad538dffda.png

方法二:Wireshark抓包

访问:http://192.168.80.40/index.php

c7f83ec339c0d562d5a5d218965675e4.png

//已成功隐藏

----------修改nginx版本信息---------

(注意,此方法会把现有配置全部删除,建议刚搭建完nginx时使用)

一:编辑配置文件

[root@localhost ~]# vi /opt/nginx-1.13.9/src/core/nginx.h

源码目录下修改信息:

78795d16a5f97ee206578243f7542136.png

保存退出

二:删除安装文件目录并重新编译安装

[root@localhost ~]# cd /usr/local/

[root@localhost local]# rm -rf nginx/ //删除nginx安装目录

[root@localhost local]# cd /opt/nginx-1.13.9/ //进入nignx解压包目录

[root@localhost nginx-1.13.9]#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module //定义配置

[root@localhost nginx-1.13.9]# Make //编译

[root@localhost nginx-1.13.9]# make install //安装

[root@localhost nginx-1.13.9]# killall -1 nginx //安全重启nginx服务

[root@localhost nginx-1.13.9]# nginx //启动nginx服务

[root@localhost nginx-1.13.9]# netstat -anpt | grep nginx //查看nginx运行状态

三:重新访问http://192.168.80.10,抓包验证

c54557b9dae6d767903fe04468d2a1e3.png

cc07cbaab6dc2061a815ca82e917f4b7.png

//伪装成功

第二部分 保持连接

一: wireshark抓包查看连接配置

7fd3f87a971747295a3e8f7fcd550608.png

二: 编辑配置文件

[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf

编辑以下内容:

keepalive_timeout 65 180; //以后者为准,可以在http\server\location设置

client_header_timeout 80; //等待客户端发送请求头的超时时间 超时会发送408错误

client_body_timeout 80; //设置客户端发送请求体超时时间

386e24fac7088497fc3da8e1cf5b8cdf.png

保存退出

(备注:keepalive_timeout第一个参数指定了与客户端的keep-alive连接超时时间,服务器将会在这个时间后关闭连接。可选的第二个参数指定了在响应头Keep-Alive:timeout=time中的time值。这个头能够让一些浏览器主动关闭连接,这样服务器就不必去关闭连接了。若没有这个参数,Nginx将不会发送Keep-Alive响应头)

[root@localhost ~]# service nginx restart //重启nginx服务

三: 抓包验证结果

访问http://192.168.80.40

b4720d3796e879de5005da93a258d344.png

用wireshark抓包

e175568ed1c4da74c6642ed8bacc812a.png

//配置成功

第三部分 优化进程数

将nginx服务原来由一个CPU核心处理,配置成由多个核心处理,增加处理效率

[root@localhost ~]# cat /proc/cpuinfo | grep "processor" //查看本机处理器

0e95cf0a379fd87755b2374e6fe6ffdd.png

[root@localhost ~]# ps aux | grep nginx

268b787b247f861233c103b53b0630ec.png

[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf //编辑nginx主配置文件

编辑以下内容:

85971ed6be75b9ca5e9fc8e8f4fc4a17.png

保存退出

[root@localhost ~]# nginx –t //检查语法错误

9be84744c3ea1aa1139d516b9bd82f65.png

[root@localhost ~]# killall -9 nginx //结束nginx进程

[root@localhost ~]# service nginx start //启动nginx服务

[root@localhost ~]# ps aux | grep nginx //查看nginx进程

5ec09882f8c150308ed7cab683e91307.png

第四部分 日志分割

Nginx没有专门的命令来执行日志分割,只能通过脚本实现

[root@localhost ~]# ls /usr/local/nginx/logs/ //查看默认日志

编写日志分割脚本

[root@localhost ~]# cd /usr/local/nginx/logs/

[root@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天自动删除

保存退出

执行脚本,测试日志是否被分割

[root@localhost ~]# sh fenge.sh //执行脚本

Win7访问http://192.168.80.40

[root@localhost logs]# ls /var/log/nginx/ //查看分割日志,按日期分割了日志文件

f8e74976e2c798d3b52d308ba3d700d7.png

做计划任务,定期分割日志

[root@localhost logs]# crontab –e

30 1 * sh /root/fenge.sh

(每天的凌晨1:30分执行/opt/fenge.sh脚本,进行日志分割)

第五部分 配置网页压缩

修改Nginx的配置文件,加入压缩功能参数

[root@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; //压缩类型,指哪些网页文档启用压缩功能

89706ec75c41dab17a3f665281796ab1.png

保存退出

修改网页文件大小

[root@localhost ~]# ls -lh /usr/local/nginx/html/ //查看html文件大小

30662cde771d979b97b56f66ad34f265.png

[root@localhost ~]# truncate -s 10k /usr/local/nginx/html/index.html

//由于压缩配置默认为最小1KB文件,将index.html放大超过1K

4c042887664aa278832b6da6ce24e84f.png

[root@localhost ~]# service nginx restart //重启nginx服务

验证

Win7访问http://192.168.80.40

49a965ce0275d9c11872628f62dd5224.png

用wireshark抓包验证结果

f92ee0f48d6427607e32bf79fac772ef.png

//压缩生效

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



推荐阅读
author-avatar
百变精灵99
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有