如何设置nginx监控与响应?
2025-04-14
43
参考资料
Nginx 监控与响应设置(含示例)
1. 安装 Nginx(若未安装)
# Ubuntu/Debian sudo apt update && sudo apt install nginx # CentOS/RHEL sudo yum install epel-release && sudo yum install nginx
2. 配置 Nginx 监控
(1) 启用访问日志 & 错误日志
修改 /etc/nginx/nginx.conf:
http {
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;
}日志轮转(logrotate):
sudo nano /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
/usr/sbin/nginx -s reload
endscript
}(2) 启用 Nginx 状态监控(stub_status)
修改 /etc/nginx/conf.d/status.conf:
server {
listen 127.0.0.1:8080;
location /nginx_status {
stub_status on;
allow 127.0.0.1; # 仅允许本地访问
deny all;
}
}测试状态接口:
curl http://127.0.0.1:8080/nginx_status
输出示例:
Active connections: 3 server accepts handled requests 100 100 200 Reading: 0 Writing: 1 Waiting: 2
3. 使用 Prometheus + Grafana 监控
(1) 安装 nginx-prometheus-exporter
wget https://github.com/nginxinc/nginx-prometheus-exporter/releases/download/v0.11.0/nginx-prometheus-exporter_0.11.0_linux_amd64.tar.gz tar -xzf nginx-prometheus-exporter_*.tar.gz sudo mv nginx-prometheus-exporter /usr/local/bin/
(2) 启动 Exporter
sudo /usr/local/bin/nginx-prometheus-exporter -nginx.scrape-uri=http://127.0.0.1:8080/nginx_status
验证:
curl http://localhost:9113/metrics
输出示例:
nginx_connections_accepted 100 nginx_connections_active 3
(3) 配置 Prometheus(/etc/prometheus/prometheus.yml)
scrape_configs: - job_name: 'nginx' static_configs: - targets: ['localhost:9113']
重启 Prometheus:
sudo systemctl restart prometheus
(4) Grafana 仪表盘
导入 Nginx 仪表盘(ID:
14515)访问
http://<grafana-server>:3000查看监控
4. 配置 Nginx 响应策略
(1) 限流(Rate Limiting)
修改 /etc/nginx/nginx.conf:
http {
limit_req_zone $binary_remote_addr zone=limit_zone:10m rate=10r/s;
server {
location /api/ {
limit_req zone=limit_zone burst=20 nodelay;
proxy_pass http://backend;
}
}
}测试限流:
ab -n 100 -c 10 http://your-server/api/
(2) 缓存(Cache)
修改 /etc/nginx/nginx.conf:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
server {
location /static/ {
proxy_cache my_cache;
proxy_pass http://backend;
}
}(3) 负载均衡(Load Balancing)
upstream backend {
server 192.168.1.10:8080 weight=2;
server 192.168.1.11:8080;
server 192.168.1.12:8080 backup;
}
server {
location / {
proxy_pass http://backend;
}
}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
本文来自《西里网 . 宝塔 | 西里网》 -- 发布时间:2025-03-29
本页链接:https://bt.ciilii.com/show/news-786.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
