性能
内容缓存
允许浏览器基本上永久地缓存静态内容。 Nginx将为您设置Expires和Cache-Control头信息。
location /static {
root /data;
expires max;
}
如果要求浏览器永远不会缓存响应(例如用于跟踪请求),请使用-1。
location = /empty.gif {
empty_gif;
expires -1;
}
Gzip压缩
gzip on;
gzip_buffers 16 8k;
gzip_comp_level 6;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_proxied any;
gzip_vary on;
gzip_types
text/xml application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml
text/javascript application/javascript application/x-javascript
text/x-json application/json application/x-web-app-manifest+json
text/css text/plain text/x-component
font/opentype application/x-font-ttf application/vnd.ms-fontobject
image/x-icon;
gzip_disable "msie6";
打开文件缓存
open_file_cache max=1000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
SSL缓存
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
上游Keepalive
upstream backend {
server 127.0.0.1:8080;
keepalive 32;
}
server {
...
location /api/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
监控
使用ngxtop
实时解析nginx访问日志,并且将处理结果输出到终端,功能类似于系统命令top。所有示例都读取nginx配置文件的访问日志位置和格式。如果要指定访问日志文件和/或日志格式,请使用-f和-a选项。
注意:在nginx配置中/usr/local/nginx/conf/nginx.conf
日志文件必须是绝对路径。
# 安装 ngxtop
pip install ngxtop
# 实时状态
ngxtop
# 状态为404的前10个请求的路径:
ngxtop top request_path --filter 'status == 404'
# 发送总字节数最多的前10个请求
ngxtop --order-by 'avg(bytes_sent) * count'
# 排名前十位的IP,例如,谁攻击你最多
ngxtop --group-by remote_addr
# 打印具有4xx或5xx状态的请求,以及status和http referer
ngxtop -i 'status >= 400' print request status http_referer
# 由200个请求路径响应发送的平均正文字节以'foo'开始:
ngxtop avg bytes_sent --filter 'status == 200 and request_path.startswith("foo")'
# 使用“common”日志格式从远程机器分析apache访问日志
ssh remote tail -f /var/log/apache2/access.log | ngxtop -f common