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/;          # 指向应用服务器
    }
}

注意事项:

1.2 客户端缓存

告知浏览器获取的信息是在某个区间时间段是有效的。

expires 30s;    # 表示把数据缓存30秒
expires 30m;    # 表示把数据缓存30分
expires 10h;    # 表示把数据缓存10小时
expires 3d;     # 表示把数据缓存3天

注意事项:

location ~* \.(jpg|jpeg|gif|png|js|css)$ {
    expires 1d;                                     # 缓存1天
}

注意事项:

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

注意事项:

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

命令作用:

执行结果:

关键参数:

注意事项:


**关键参数:**

**注意事项:**



执行结果:


---



**配置代理服务器**

}

注意事项:

}

} }


**注意事项:**



}

注意事项:

}

}


**注意事项:**





}

注意事项:

}


**注意事项:**

注意事项:

rpm安装的nginx日志文件默认会被系统日志轮转程序自动切割成小日志文件,一天切割一次,默认最多保留52个旧日志文件