1. 上节回顾
在上一节中,我们通过具体的实践案例,详细讲解了Nginx如何应用于静态资源服务、动静分离、负载均衡及微服务网关。本节将进一步深入,探讨Nginx的运维与监控技术,帮助读者学会如何有效管理和优化Nginx服务。
2. 运维与监控
Nginx在生产环境中的高效运维依赖于完善的监控和日志管理。以下内容将从日志配置、实时监控和高可用方案等方面展开详细介绍。
2.1 Nginx日志配置
日志是分析系统运行状态和排查问题的重要工具。Nginx支持访问日志和错误日志两种类型。
2.1.1 配置访问日志
访问日志记录了客户端对服务器的每一次请求:
http {
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 /var/log/nginx/access.log main;
}
log_format
:定义日志格式。access_log
:指定访问日志文件的位置和格式。
2.1.2 配置错误日志
错误日志记录了服务器运行时的错误信息:
error_log /var/log/nginx/error.log warn;
warn
:记录警告及以上级别的日志。日志级别:
debug
>info
>notice
>warn
>error
>crit
>alert
>emerg
。
2.2 使用状态监控模块
Nginx提供了内置的stub_status
模块,用于监控服务器的基本状态信息。
2.2.1 启用stub_status
在Nginx配置文件中添加如下配置:
server {
listen 8080;
server_name localhost;
location /nginx_status {
stub_status;
allow 127.0.0.1;
deny all;
}
}
stub_status
:启用状态监控模块。allow
与deny
:限制访问,仅允许本地IP访问。
2.2.2 查看监控信息
访问 http://localhost:8080/nginx_status
,会显示类似以下的信息:
Active connections: 291
server accepts handled requests
128013 128013 147610
Reading: 2 Writing: 5 Waiting: 284
Active connections
:当前活动连接数。accepts handled requests
:总共接收的连接、成功创建的连接及处理的请求数。Reading
:读取客户端请求的连接数。Writing
:响应客户端的连接数。Waiting
:空闲连接数。
2.3 故障排查与高可用
2.3.1 常见故障排查
服务无法启动:
检查配置文件是否有语法错误:
nginx -t
502 Bad Gateway:
后端服务不可用或Nginx与后端的连接配置错误。
高CPU或内存使用:
查看日志是否有大量的请求或攻击。
使用工具如
htop
或top
排查问题。
2.3.2 高可用配置
Nginx与keepalived
结合可实现高可用架构,通过虚拟IP实现主备切换。
示例配置:
安装
keepalived
:sudo apt install keepalived
配置
keepalived.conf
:vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 12345 } virtual_ipaddress { 192.168.1.100 } }
启动服务:
systemctl start keepalived
3. 总结
本节详细讲解了Nginx的运维与监控技术,包括日志配置、实时状态监控和高可用架构的实现。这些内容是保障Nginx在生产环境稳定运行的重要环节。
下一节将重点探讨Nginx的常见问题与解决方案,帮助读者快速应对生产环境中的实际问题。