1. Nginx安装(以Ubuntu为主)

1.1 ubuntu

官方文档

sudo apt update
sudo apt install nginx

1.2 centos

官方文档

cat /etc/yum.repos.d/nginx.repo#修改源[root]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$branch/
gpgcheck=0
enabled=1

1.3 配置文件详解

/ect/nginx/nginx.conf
user #用户
event.worker_connections#每个工作进程可以启动的连接
http.default_type=application/octet-stream#二进制流

1.4 启动 nginx

sudo systemctl start nginx

1.5 卸载 nginx

sudo apt-get remove nginx nginx-common
sudo apt-get purge nginx nginx-common
sudo apt-get autoremove
sudo apt-get remove nginx-full nginx-common

1.6 相关命令

systemctl status/start/stop nginx:查看、启动、关闭nginx
nginx -s reload|stop|start:重启、关闭、启动
nginx -V:查看编译参数
/etc/nginx/nginx.conf:默认配置文件
nginx -s reload  :修改配置后重新加载生效
注意:配置反向代理要关闭selinux,setenforce 0

[注意] 修改nginx配置后应该使用nginx -s reload使配置生效

2. ngx_http_stub_status监控连接信息

2.1 添加配置

/etc/nginx/conf.d/*.conf

location = /nginx_status{stub_status on;access_log off;allow 127.0.0.1;#允许本机deny all;#其它都拒绝
}

2.2 查看stub_status输出

wget http://localhost/nginx_status

3. ngxtop监控请求信息

3.1 安装python-pip

#centos
yum install epel-release
yum install python-pip#ubuntu
sudo apt install python-pip

3.2 安装ngxtop

pip install ngxtop

3.3 ngxtop使用

3.3.1 指定配置文件

ngxtop -c /etc/nginx/nginx.conf

3.3.2 查询状态是200

ngxtop -c /etc/nginx/nginx.conf -i 'status==200'

3.3.3 查询访问最多ip

ngxtop -c /etc/nginx/nginx.conf - g remote_addr

4. nginx-rrd图形化监控

4.1 安装pip

sudo apt-get install php php-gd php-soap php-mbstring php-xmlrpc php-dom php-fpm -y

4.2 nginx整合php-fpm

修改/etc/php-fpm.d/www.conf文件中的usergroup,与nginx.conf中的user一致。
user=nginx
group=nginx

注意

sudo find / -name www.conf查看www.conf文件位置

4.3 启动php-fpm服务

[ubuntu]

4.4 修改nginx的配置

location ~ \.php${root /usr/share/nginx/html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;include fastcgi_params;
}

4.5 重启nginx

nginx -s reload

4.6 安装rrdtool相关依赖

[centos]
yum install perl rrdtool perl-libwww-perl libwww-perl perl-rrdtool -y

4.7 安装nginx-rdd

wget http://soft.vpser.net/status/nginx-rrd/nginx-rrd-0.1.4.tgz
tar zxvf nginx-rrd-0.1.4.tgz
cd nginx-rrd-0.1.4
cp usr/sbin/* /usr/sbin # 复制主程序文件到/usr/sbin下
cp etc/nginx-rrd.conf /etc #复制配置文件到/etc下
cp html/index.php /usr/share/nginx/html/

4.8 修改配置vi /etc/nginx-rrd.conf

RRD_DIR="/usr/share/nginx/html/nginx-rrd";
WWW_DIR="/usr/share/nginx/html";

4.9 新建定时任务

crontab -e# 新建任务**    *** /bin/sh /usr/sbin/nginx-collect
*/1 * *** /bin/sh /usr/sbin/nginx-graph
crontab -l 查看任务
tail -f /var/log/cron

4.10 ab压测

[centos]
yum -y install httpd-toolsab -n 10000 -c 10 http://127.0.0.1/index.html
# 10000个请求,并发为10;

5. nginx优化

  • 增加工作线程和并发连接数

nginx默认是一个工作线程,1024个并发连接数。

/etc/nginx/nginx.conf

work_process 4|auto;//CPU个数
events{worker_connections 10240;//[需要修改系统文件配置]每个工作线程的最大连接数,包含了nginx与客户端和nginx与upstream之间的连接。multi_accept on;//可以一次建立多个连接use epoll;
}
  • 启用长连接

/etc/nginx/conf.d/default.conf

upstream:配置反向代理集群

upstream server_pool{server localhost:8080 weight=1 max_fails=2 fail_timeouts=30s;server localhost:8081 weight=1 max_fails=2 fail_timeouts=30s;keepalive 300;#300个长连接
}location / {proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_pass http://server_pool/;
}
  • 启用缓存、压缩
# 配置压缩
gzip on;
gzip_http_version 1.1;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
gzip_proxied any;
gzip_types text/plain text/css application/javascript application/x- javascript application/isonapplication/xmlapplication/vnd.ms-
fontobject application/x-font-ttf application/svg+xml application/x-icon;
gzip_vary on;#Vary:Accept-Encoding
gzip_static on;#如果有压缩好的直接使用
  • 操作系统优化

配置文件/etc/sysctl.conf

sysctl -w net.ipv4.tcp_syncookies=1#防止一个套接字在有过多试图连接到达时引起过载
sysctl -w net.core.somaxconn=1024#默认128,连接队列
sysctl -w net.ipv4.tcp_fin_timeout=10#timewait的超时时间
sysctl -w net.ipv4.tcp_tw_reuse=1#os直接使用timewait的连接
sysctl -w net.ipv4.tcp_tw_recycle=0#回收禁用

配置文件/etc/security/limits.conf

* hard nofile 204800
* soft nofile 204800
* soft core unlimited
* soft stack 204800
  • 其他优化

/etc/nginx/nginx.conf

sendfile on;#减少文件再应用和内核之间的拷贝
tcp_nopush on;#当数据包达到一定大小再发送
tcp_nodelay off;#有数据随时发送

Nginx性能监控与调优相关推荐

  1. Java生产环境下性能监控与调优详解 第6章 Nginx性能监控与调优

    第6章 Nginx性能监控与调优 6-1 nginx安装 6-2 ngx_http_stub_status监控连接信息 6-3 ngxtop监控请求信息 6-4 nginx-rrd图形化监控 6-5 ...

  2. Java生产环境下性能监控与调优详解 大纲 学习感悟

    Java生产环境下性能监控与调优详解 生产环境发生了内存溢出如何处理? 生产环境应该给服务器分配多少内存合适? 如何对垃圾收集器的性能进行调优? 4.生产环境CPU负载飙高该如何处理? 5.生产环境应 ...

  3. JAVA生产环境验证_Java生产环境下性能监控与调优详解

    本课程将为你讲解如何在生产环境下对Java应用做性能监控与调优:通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出.cpu负载飙高等问题:学会线上代码调试,Tomcat.Nginx, ...

  4. Java生产环境下性能监控与调优详解 第5章 Tomcat性能监控与调优

    第5章 Tomcat性能监控与调优 5-1 tomcat远程debug 5-2 tomcat-manager监控 5-3 psi-probe监控 5-4 tomcat优化

  5. Java生产环境下性能监控与调优详解 第2章 基于JDK命令行工具的监控

    Java生产环境下性能监控与调优详解 第2章 基于JDK命令行工具的监控 2-1 JVM的参数类型 标准参数 x参数 XX参数 2-2 查看JVM运行时参数 2-3 jstat查看JVM统计信息 2- ...

  6. jinfo java_Java自带的JVM性能监控及调优工具(jps、jinfo、jstat、jmap、javap)使用介...

    JVM介绍 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的. ...

  7. 性能监控与调优篇之【3. JVM 监控及诊断工具-GUI 篇】

    文章目录 3. JVM 监控及诊断工具-GUI 篇 3.1. 工具概述 3.2. JConsole 3.3. Visual VM 3.4. Eclipse MAT 3.5. JProfiler 3.6 ...

  8. <JVM下篇:性能监控与调优篇>03-JVM监控及诊断工具-GUI篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  9. JVM(四)_性能监控与调优

    不定期补充.修正.更新:欢迎大家讨论和指正 本文主要根据尚硅谷的视频学习,建议移步观看,其他参考资料会在使用时贴出链接 尚硅谷宋红康JVM全套教程(详解java虚拟机) 由于JVM的知识是互相穿插的, ...

最新文章

  1. Py之pycocotools:pycocotools库的简介、安装、使用方法之详细攻略
  2. centos光盘修复引导_Centos6 系统修复grub
  3. InstallSield更新包快速入门文档
  4. 弹窗编辑jsp报表内数据
  5. Oracle与Google两IT巨头战争冲击整个硅谷
  6. Scrapy ImportError: No module named items
  7. 云效研发平台负责人:高效研发运维体系构建的方法论
  8. 北京电影学院及中央戏剧学院老师推荐的必看影片,我真是一条一条翻的,一条一条写的,是真的。...
  9. android h5富文本编辑器,H5富文本编辑器的详细介绍
  10. Kylin - 框架介绍
  11. html时间轴横向自动播放,利用jQuery实现日期时间轴自动播放代码
  12. envi反演水质参数_遥感干旱反演方法汇总
  13. [uboot] (第一章)uboot流程——概述
  14. Elasticsearch压测工具esrally使用笔记
  15. (二)nginx正向代理https
  16. PCB线板子的形状怎么设计的?
  17. LTE 随机接入 --(1)流程
  18. Archive of Our Own_为什么说for...of循环是JS中的宝石?
  19. 马原(2023版)哲学基本问题笔记
  20. 蓝桥杯——BASIC-3——基础练习 字母图形

热门文章

  1. 全球MCU供应商,欧洲占据半壁江山
  2. adobe digital negative converter 中文版 v10.0.0.827
  3. pytorch实战-Unet3d(LiTS)
  4. 用Packstack 安装 Openstack,无法启动实例,cpu affinity is not supported
  5. 解决谷歌浏览器打开空白标签页自动跳转https://www.google.com.hk/webhp?ie=UTF-8gws_rd=crrct=j
  6. 哪些品牌蓝牙耳机性价比高?2020十大高性价比无线蓝牙耳机盘点
  7. 关于CAN、CAN FD、TTCAN的理解
  8. 外包Java后端开发三年,年底跳槽两个月如何应付面试?
  9. python跟易语言的爬虫_用易语言写个简单的小爬虫其中的关键点
  10. 【ReID】表征学习和度量学习