前言
在做的项目要在地图上展示海量的桩号点数据 接口返回的数据量太大 差不多六七万条数据 前端海量点渲染加分层展示还好 但是接口请求速度太慢 数据太大 因为项目的时间问题 来不及去优化代码 就想到了 nginx有个gzip
配置完后 数据从20m压缩到了2m 响应时间也大大的减少了 下面是在做配置时候用到的所有步骤 有需求的朋友可以按照下面一步一步来配置
安装nginx
- 安装编译工具及库文件
yum install gcc
yum install pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
- 创建nginx文件夹
mkdir /usr/local/nginx
- 在nginx文件夹中下载nginx安装包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
- 解压
tar -xvf nginx-1.13.7.tar.gz
- 进入安装好的文件夹编译安装 我这边编译的是对应https的
cd nginx-1.13.7/
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install
- 查看nginx版本
/usr/local/nginx/sbin/nginx -v
到此,nginx安装完成。
配置https代理
- 进入nginx conf文件夹
cd /usr/local/nginx/conf
- 编辑nginx.conf
vi nginx.conf
- 加入以下配置 nginx自带了https的默认配置 也可以把注释去掉在原来的基础上修改
server {
#监听443端口
listen 443 ;
#对应的域名,把gzyh.gzgsgly.com改成你们自己的域名
server_name gzyh.gzgsgly.com;
ssl on;
#nginx证书 我把证书都放到了 /etc/ssl
ssl_certificate /etc/ssl/gzyh.gzgsgly.com_bundle.pem;
ssl_certificate_key /etc/ssl/gzyh.gzgsgly.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
#代理的地址,就是tomcat的访问地址
proxy_pass http://192.168.250.2:8080;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Proto https;
}
}
开启gzip
- 打开nginx.conf gzip默认是关闭的 在文件中找到gzip 并在下面添加以下配置
#将gzip打开
gzip on;
# 压缩级别 级别越高,压的越小,越浪费CPU计算资源
gzip_comp_level 2;
#对哪些类型的文件用压缩
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 开始压缩的最小长度 我这边是1000k 不建议调到很小
gzip_min_length 1000k;
#缓冲
gzip_buffers 16 64k;
#开始压缩的http协议版本
gzip_http_version 1.1;
到此安装到配置全部完成 下面就是启动tomcat服务器与nginx服务器 测试一下
- 启动nginx
/usr/local/nginx/sbin
./nginx
- 重启命令
./nginx -s reload
- 停止命令
./nginx -s stop
登录系统查看是否有压缩数据
https正常
接口的数据从最开始的20m 压缩成了2m
公司的网速慢 响应时间从40多秒 变成了4秒以内