Nginx性能优化与日志分析
1. 性能优化之三大核心手段
1.1 动静分离
动静分离的本质: 将静态资源与动态请求分离到不同的服务或目录,通过Nginx精准路由,避免动态请求阻塞静态资源的高效传输,同时降低后端压力。
server {
listen 80; # 监听80端口
server_name example.com; # 绑定域名
# 动态请求:转发到后端应用服务器
location /api/ {
proxy_pass http://backend_server:8080/; # 指向后端服务地址
proxy_set_header Host $host; # 传递原始请求头
}
# 静态资源:直接由Nginx从本地目录返回
location ~* \.(jpg|jpeg|png|gif|css|js|woff|woff2|ico)$ {
root /var/www/static; # 静态资源存放目录
expires 30d; # 缓存30天
}
# 默认动态请求
location / {
proxy_pass http://app_server:3000/; # 指向应用服务器
}
}注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
- 改完 Nginx 后先执行
nginx -t检查语法,再 reload,避免站点直接不可用。
1.2 客户端缓存
告知浏览器获取的信息是在某个区间时间段是有效的。
expires 30s; # 表示把数据缓存30秒
expires 30m; # 表示把数据缓存30分
expires 10h; # 表示把数据缓存10小时
expires 3d; # 表示把数据缓存3天注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
location ~* \.(jpg|jpeg|gif|png|js|css)$ {
expires 1d; # 缓存1天
}注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
1.3 开启Gzip压缩
压缩文件大小变小了,传输更快了。
gzip on; # 开启Gzip压缩功能
gzip_min_length 1k; # 仅压缩大于1KB的文件
gzip_buffers 4 16k; # 压缩缓冲区数量和大小
gzip_http_version 1.1; # 兼容HTTP/1.1协议
gzip_comp_level 5; # 压缩级别(推荐5~6)
gzip_types text/plain # 指定要压缩的文件类型
text/css
text/javascript
application/javascript
application/x-javascript
image/jpeg
image/gif
image/png
image/x-ms-bmp;
gzip_vary on; # 添加Vary: Accept-Encoding头
gzip_disable "MSIE [1-6]\."; # 禁用对IE6及以下版本的Gzip注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
- 镜像地址、版本号和拉取权限要确认,否则 Pod 会进入
ImagePullBackOff。
2. 日志分析
2.1 日志分类
| 日志类型 | 默认文件名 | 核心记录内容 |
|---|---|---|
| 访问日志 | access.log | 用户访问信息与流量统计 |
| 错误日志 | error.log | 配置语法错误、进程异常、连接超时等信息 |
2.2 access 访问日志
# 查看访问日志(源码安装)
cat /usr/local/nginx/logs/access.log
# 查看访问日志(yum/apt安装)
cat /var/log/nginx/access.log命令作用:
- 读取并输出
/usr/local/nginx/logs/access.log的内容;使用>重定向时,输出会写入目标文件。
- 读取并输出
/var/log/nginx/access.log的内容;使用>重定向时,输出会写入目标文件。
执行结果:
- 成功后会输出指定文件内容;文件不存在或权限不足时会报错。
关键参数:
注意事项:
**关键参数:**
**注意事项:**
执行结果:
---
**配置代理服务器**
}注意事项:
}
} }
**注意事项:**
}注意事项:
}
}
**注意事项:**
}注意事项:
}
**注意事项:**
注意事项:
rpm安装的nginx日志文件默认会被系统日志轮转程序自动切割成小日志文件,一天切割一次,默认最多保留52个旧日志文件