Nginx性能监控与调优(4)

配置好后,启动php-fpm服务,并且重新加载nginx:

[root@01server ~]# systemctl start php-fpm [root@01server ~]# netstat -lntp |grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 24418/php-fpm: mast [root@01server ~]# nginx -s reload

然后在虚拟主机配置文件中所指向的网站根目录下,新建一个简单的php文件,用于测试nginx是否已经能够正常解析php代码:

[root@01server ~]# vim /usr/local/nginx/html/index.php # 文件内容如下 <?php phpinfo(); ?> [root@01server ~]#

接着到浏览器上进行访问,如下则是代表nginx已经能够支持解析php了:

Nginx性能监控与调优

现在我们就可以开始安装nginx-rrd了,首先使用如下命令,下载nginx-rrd的压缩包:

[root@01server ~]# cd /usr/local/src/ [root@01server /usr/local/src]# wget

然后解压,并且拷贝一些脚本文件及配置文件到相应的系统目录下:

[root@01server /usr/local/src]# tar -zvxf nginx-rrd-0.1.4.tgz [root@01server /usr/local/src]# cd nginx-rrd-0.1.4 [root@01server /usr/local/src/nginx-rrd-0.1.4]# ls etc html usr [root@01server /usr/local/src/nginx-rrd-0.1.4]# cp etc/nginx-rrd.conf /etc [root@01server /usr/local/src/nginx-rrd-0.1.4]# cp usr/sbin/* /usr/sbin [root@01server /usr/local/src/nginx-rrd-0.1.4]# rm -rf /usr/local/nginx/html/index.php # 删除之前测试用的php文件 [root@01server /usr/local/src/nginx-rrd-0.1.4]# cp html/index.php /usr/local/nginx/html/

修改nginx-rrd配置文件,配置数据存储目录以及图片存储目录,如下:

[root@01server ~]# vim /etc/nginx-rrd.conf # dir where rrd databases are stored RRD_DIR="/usr/local/nginx/html/nginx-rrd"; # 数据存储目录 # dir where png images are presented WWW_DIR="/usr/local/nginx/html"; # 图片存储目录 [root@01server ~]#

配置完之后,我们还需要使用 crontab 新建定时任务,用于定时执行nginx-rrd的两个脚本,因为nginx-rrd需要定时去采集数据才能实现一个监控的效果:

[root@01server ~]# crontab -e * * * * * /bin/sh /usr/sbin/nginx-collect # 采集数据脚本 */1 * * * * /bin/sh /usr/sbin/nginx-graph # 生成图片脚本 [root@01server ~]#

我们这里设定的定时任务是每一分钟执行一次,可以使用如下命令查看定时任务是否有在执行:

[root@01server ~]# tail -f /var/log/cron

确认定时任务有正常执行后,我们来安装apache的一个压测工具,方便于我们生成大量的请求数据:

[root@01server ~]# yum -y install httpd-tools

安装完成后,使用以下命令,对nginx进行压测,可以多执行几次:

[root@01server ~]# ab -n 10000 -c 10

命令说明:

-n 指定总共发送多少个请求

-c 指定同时发送多少个请求

使用压测工具产生了一些请求数据后,到浏览器上访问nginx-rrd的index.php文件,效果如下:

Nginx性能监控与调优

nginx优化

在以上小节中,我们介绍了一些nginx的监控工具。知道了如何对nginx进行性能监控后,我们自然就需要知道一些nginx的常用优化参数和配置,所以本小节就是介绍一些nginx的常见优化方式。

1.配置工作进程数和并发连接数。

默认情况下,nginx只有一个工作进程,1024个并发连接数。当我们需要提高nginx的并发负载能力时,可以适当的增加工作进程数和并发连接数。在nginx.conf里进行配置:

[root@01server ~]# vim /usr/local/nginx/conf/nginx.conf # 修改或增加如下几个参数 worker_processes 2; # 工作进程数受cpu核心数的限制,数量不能超过cpu的核心数 events { use epoll; # 使用epoll模型,可以提高并发效率 multi_accept on; # 开启一次建立多个连接 worker_connections 10240; # 每一个工作进程能够打开的最大连接数,包含了nginx与客户端和nginx与upstream之间的连接 } [root@01server ~]#

2.配置反向代理(后端Server)的长连接

Nginx upstream与后端的连接默认为短连接,通过HTTP/1.0向后端发起连接,并把请求的"Connection" header设为"close"。Nginx与前端的连接默认为长连接,一个用户跟Nginx建立连接之后,通过这个长连接发送多个请求。如果Nginx只是作为reverse proxy的话,可能一个用户连接就需要多个向后端的短连接。如果后端的服务器(源站或是缓存服务器)处理并发连接能力不强的话,就可能导致瓶颈的出现。所以我们才需要配置反向代理的长连接,以此缓解瓶颈的问题。示例配置如下:

[root@01server ~]# vim /usr/local/nginx/conf/vhost/default.conf upstream server_pool{ server localhost:8080 weight=1 max_fails=2 fail_timeout=30s; server localhost:9080 weight=1 max_fails=2 fail_timeout=30s; keepalive 300; # 设置300个长连接,长连接能够大大提高请求转换的效率 } location / { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_pass ; } [root@01server ~]#

3.配置gzip压缩

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d47316e0ee1afc9d00195ea501348c1a.html