Nginx网络服务之监控模块
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、Nginx服务基础
- 1、关于Nginx——一款高性能、轻量级Web服务软件
- 2、上传nginx-module-vst-master软件包并解压
- 3、安装Nginx
- (1)、编译安装nginx
- (2)、优化管理
- (3)、添加Nginx系统服务
- (4)、备份
- Nginx配置文件管控的层次结构
- 4、Nginx监控
- (1)、监控Nginx主要用到以下三个模块:
- (2)、修改配置文件
- (3)、启动
- (4)、访问测试(首页)——http://192.168.116.10
- (5)、访问状态监控模块——http://192.168.116.10/status
前言
提示:以下是本篇文章正文内容,下面案例可供参考
一、Nginx服务基础
1、关于Nginx——一款高性能、轻量级Web服务软件
稳定性高
系统资源消耗低
对HTTP并发连接的处理能力高
单台物理服务器可支持30000 ~ 50000个并发请求(理论情况下)实际情况下大概20000 ~ 30000左右
2、上传nginx-module-vst-master软件包并解压
unzip nginx-module-vts-master.zip
mv nginx-module-vts-master /usr/local/
3、安装Nginx
#yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel make
(1)、编译安装nginx
上传nginx-1.15.9.tar.gz到/opt目录下
cd /opt
tar -zxvf nginx-1.15.9.tar.gzcd nginx-1.15.9/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--add-module=/usr/local/nginx-module-vts-mastermake -j4 && make install
(2)、优化管理
useradd -M -s /sbin/nologin nginx
nginx -t #检查配置文件是否配置正确
nginx #启动
(3)、添加Nginx系统服务
vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile =/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.targe
[Unit]
Description=nginx #描述
After=network.target #描述服务类别
[Service]
Type=forking #后台运行类型
PIDFile =/usr/local/nginx/logs/nginx.pid #PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx #启动服务
ExecrReload=/bin/kill -s HUP $MAINPID #根据PID重载配置
ExecrStop=/bin/kill -s QUIT $MAINPID #根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target #启动级别
chmod 754 /usr/lib/systemd/system/nginx.service #设置754权限是一种安全优化
systemctl start nginx.service
systemctl enable nginx.service
(4)、备份
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
vim /usr/local/nginx/conf/nginx.conf
#user nobody; #默认运行/管理用户
worker_processes 1; #工作进程运行数量,可配置成服务器内核数*2,如果网站访问量不大,一般设为1#error_log logs/error.log; #错误日志文件路径/级别
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid; #pid文件位置events { #events:事件#use epoll #默认是没写的,epoll是抗高并发的参数之一worker_connections 1024; #每个进程最多处理的连接数量(socket)上限是65535PS:两种修改方式,以下是临时
#如提高每个进程的连接数还需执行“ulimit -n 65535”(临时调整)命令临时修改本地每个进程可以同时打开的最大文件数。
#在Linux 平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制
#可使用ulimit -a 命令查看系统允许当前用户进程打开的文件数限制。
}http { #http协议的配置include mime.types; #文件拓展名与文件类型映射表default_type application/octet-stream; #默认文件类型#log_format main '$remote_addr - $remote_user [$time_local] "$request" ' #日志格式设置# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main; #访问日志位置sendfile on; #支持文件发送(下载)#tcp_nopush on; #此项允许或禁止使用socket的TCP_CORK的选项(发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用#keepalive_timeout 0; ##连接保持超时时间,单位:秒keepalive_timeout 65;#gzip on; #压缩模块 on 表示开启server { #web服务相关的一些配置listen 80; #默认的监听端口server_name localhost; #站点域名,可以修改域名,例如www.liuxu.com#charset koi8-r; #字符集支持(修改为中文)UTF-8#access_log logs/host.access.log main; #此web服务的主访问日志location / { #/根目录配置,(浏览器中,www.baidu.com/,访问的根路径root html; #网站根目录的位置/usr/local/nginx/html(相对路径)index index.html index.htm; #支持的首页文件格式}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html #当发生错误的时候能够显示一个预定义的错误页面#error_page 500 502 503 504 /50x.html; #当发生错误的时候能够显示一个预定义的错误页面location = /50x.html { #错误页面配置root html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80 #以下是支持PHP及跳转的配置##location ~ \.php$ { # proxy_pass http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {# deny all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server { #虚拟主机的配置文件# listen 8000;# listen somename:8080;# server_name somename alias another.alias;# location / {# root html;# index index.html index.htm;# }#}# HTTPS server #HTTPS的配置(SSL 加密)##server {# listen 443 ssl;# server_name localhost;# ssl_certificate cert.pem;# ssl_certificate_key cert.key;# ssl_session_cache shared:SSL:1m;# ssl_session_timeout 5m;# ssl_ciphers HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers on;# location / {# root html;# index index.html index.htm;# }#}
Nginx配置文件管控的层次结构
1、gloabl:全局生效的配置
2、协议http { } nginx主要控制的就是HTTP层面
3、server { } 具体匹配进入nginx的相关配置
4、location 主要用于匹配URL并基于匹配到的URL做相关处理
4、Nginx监控
(1)、监控Nginx主要用到以下三个模块:
1、nginx-module-vts:Nginx virtual host traffic status module,Nginx的监控模块,能够提供JSON格式的数据产出。
2、nginx-vts-exporter:Simple server that scrapes Nginx vts stats and exports them via HTTP for Prometheus consumption。主要用于收集Nginx的监控数据,并给Prometheus提供监控接口,默认端口号9913。
3、Prometheus:监控Nginx-vts-exporter提供的Nginx数据,并存储在时序数据库中,可以使用PromQL对时序数据进行查询和聚合。
(2)、修改配置文件
#PS:主要是修改默认日志文件格式,添加压缩配置,添加监控配置,具体可根据自己的需求修改
http {include mime.types;default_type application/octet-stream;vhost_traffic_status_zone; #流量状态监控
PS:开启此功能,在Nginx配置有多个server_name的情况下,会根据不同的server_name进行流量的统计,否则默认会把流量全部计算到第一个server_name上。
假如nginx没有规范配置server_name或者无需进行监控的server上,那么建议在此vhost上禁用统计监控功能。否则会出现“127.0.0.1”,hostname等的域名监控信息
log_format main '{ "@timestamp": "$time_local", '
'"@fields": { '
'"uri":"$request_uri",'
'"url":"$uri",'
'"upstream_addr":"$upstream_addr",'
'"remote_addr": "$remote_addr", '
'"remote_user": "$remote_user", '
'"body_bytes_sent": "$body_bytes_sent", '
'"host":"$host",'
'"server_addr":"$server_addr",'
'"request_time": "$request_time", '
'"request_time":"$request_time",'
'"status":"$status",'
'"request": "$request", '
'"request_method": "$request_method", '
'"size":$body_bytes_sent,'
'"upstream_time":"$upstream_response_time"'
'"http_referrer": "$http_referer", '
'"body_bytes_sent":"$body_bytes_sent", '
'"http_x_forwarded_for": "$http_x_forwarded_for", '
'"http_user_agent": "$http_user_agent" } }';#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;
server {..............location / {root html;index index.html index.htm;}location /status {vhost_traffic_status_display;vhost_traffic_status_display_format html;}}
(3)、启动
/usr/local/nginx/sbin/nginx
(4)、访问测试(首页)——http://192.168.116.10
(5)、访问状态监控模块——http://192.168.116.10/status
不停刷新可以看到请求的数值、成功连接数量等数值在变化
Nginx网络服务之监控模块相关推荐
- nginx网络服务配置
一.Nginx概述 Nginx: Nginx 是开源.高性能.高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间 ...
- Nginx Web服务应用
Nginx("engine x")是一个开源的,支持高性能.高并发的WWW服务和代理服务软件.它还具有反向代理负载均衡功能和缓存服务功能. 1 Nginx的几个常见的重要特性 1. ...
- Linux实战教学笔记37:企业级Nginx Web服务优化实战(上)
一,Nginx基本安全优化 1.1 调整参数隐藏Nginx软件版本号信息 一般来说,软件的漏洞都和版本有关,这个很像汽车的缺陷,同一批次的要有问题就都有问题,别的批次可能就都是好的.因此,我们应尽量隐 ...
- Linux与网络服务(一)网络服务相关概念通俗解释(科普向)
Linux与网络服务(一)网络服务相关概念通俗解释(科普向) 前言 专业名词及概念的通俗解释 云服务器 云/云服务 云计算 弹性伸缩 负载均衡 公网IP 域名/域名备案 端口 SSH(安全外壳协议)/ ...
- Nginx网站服务与LNMP架构部署(详解)
Nginx网站服务与LNMP架构部署 1.Nginx服务基础 2.编译安装Ngiax 3.Nginx的运行控制 4.配置文件nginx.conf 5.Nginx虚拟主机 6.LNMP架构部署 1.源码 ...
- 尚硅谷Linux网络服务基础
一.需要学习的网络服务 域名解析服务(DNS) 动态主机配置服务(DHCP) 文件传输服务(FTP/samba) 网络文件系统服务(NFS) 万维网服务(Apache/Nginx/Tomcat) 邮件 ...
- nginx 根据目录指定root_部署Nginx网站服务实现访问状态统计以及访问控制功能
Nginx专为性能优化而开发,最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力,单个物理服务器可支持30000-50000个并发请求. Nginx的安装文件可以从官方网站h ...
- Nginx网站服务(安装nginx、平滑升级nginx、nginx各种访问配置)
文章目录 一.Nginx概述 1.什么是nginx? 2.Nginx应用场景 3.Nginx应用企业 4.nginx的HTTPD七层代理和四层代理 二.Nginx和Apache的区别 三.编译安装Ng ...
- 虚拟机重启服务器失败的原因,虚拟机重启网络服务失败,当查看状态显示错误Failed to start LSB.........
重启网络失败截图 从本质上来看出现这样的问题,是因为拷贝过来的虚拟机重新分配了网卡MAC地址.这样造成的结果是配置文件中MAC与当前网卡MAC不一致.所以只需要修改一下配置文件即可. 用ip addr ...
最新文章
- 任正非:明年至少招聘 8000 名应届生,华为人才将分为三类
- windows7下安装MongoDB数据库
- java 反射 参数名_JAVA 8 反射获取参数名
- Django 3.2.5博客开发教程:体验数据查询
- 【Boost】boost库中function和bind一起使用的技巧(二)
- python中sort返回值_Python函数你真的都学会了吗?来看看这篇Python高阶函数!
- 用uGUI开发自定义Toggle Slider控件
- 如何做到毫秒级从百亿大表任意维度筛选数据?| 技术头条
- java tostring的用处_java中的toString什么意思?toString有什么用?
- Chrome使用、插件、脚本
- ERP原理与应用教程-第一章
- 工控领域国际品牌的市场兼并
- Word转成PDF后目录出现未定义书签是怎么回事
- mac更改launchpad图标大小
- qq邮箱怎么发送html文件在哪里,QQ邮箱怎么发送文件夹
- python3.6library 学习 1.introduction,2.built-infunction
- 【第三届蓝桥杯】手机尾号
- Java基础知识英文选择题1——Basic of Java Programs.
- python计算财务指标,Python-股票-图表显示主要财务指标
- sql服务器查看版本信息,怎么查看sql server的版本