生产环境 GoAdmin 后台加载慢的问题

更新日期: 2020-04-23 阅读次数: 835 字数: 470 分类: golang

从 Chrome Network 里看,GoAdmin 加载了很多大的静态资源文件,例如 all_2.min.js 有 1.2M 之大。

生产环境 GoAdmin 后台加载慢的问题

更严重的是,GoAdmin 没有对静态资源文件做缓存设置,导致每次用浏览器打开,都需要重新拉取一遍全量的静态资源文件。而我的服务器带宽只有 1M,下载速度非常缓慢。

生产环境 GoAdmin 后台加载慢的问题

可以对比参考 Google 首页的处理方式:

生产环境 GoAdmin 后台加载慢的问题

解决方法一:

GoAdmin 后台设置 CDN,参考 http://doc.go-admin.cn/zh/admin/cdn/

但是这种方法,我并不打算使用。原因是:

  • 更新 CDN 文件麻烦。每次版本升级,都需要对应的更新 CDN 文件。
  • 由于这个管理后台只有我一个人用,放 CDN 有点浪费了。实际上放自己服务器上,缓存时间设置的长一些,体验也非常好。

解决方法二:

在自己服务器上拉取 GoAdmin 主题仓库的代码:

git clone git@github.com:GoAdminGroup/themes.git

对比管理后台静态资源的请求路径,及 theme 代码库的路径,在 Nginx 上设置一个规则,自动转发到主题代码目录。

https://www.sunzhongwei.com/goadmin/assets/dist/js/all.min.js
https://github.com/GoAdminGroup/themes/tree/master/adminlte/resource/assets/dist/js

由于阿里云服务器上拉取 github 代码一直显示 Connection refused 错误,所以,我干脆把 dist 目录扔到了后台项目代码中:

$ git clone https://github.com/GoAdminGroup/themes
Cloning into 'themes'...
fatal: unable to access 'https://github.com/GoAdminGroup/themes/': Failed to connect to 127.0.0.1 port 1080: Connection refused

最终的 Nginx 配置

location /goadmin/assets/dist/ {
    access_log off; 
    expires 30d;
    alias /project_path/go/public/goadmin/;
}

配置之后,确实加载 GoAdmin 后台要快多了。

返回的数据头中多了 Cache-Control: max-age=2592000,即 30 天。

Cache-Control: max-age=2592000
Date: Thu, 23 Apr 2020 03:10:21 GMT
ETag: "5ea104b8-13df64"
Last-Modified: Thu, 23 Apr 2020 03:00:08 GMT
领取618阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。 查看更多联系方式

tags: GOADMIN Nginx 缓存静态文件

相关文章

爱评论不评论

近期节日

2020年06月11日 中国人口日
2020年06月20日 世界难民日
2020年06月21日 父亲节
2020年06月21日 夏至
2020年06月22日 中国儿童慈善活动日
2020年06月23日 国际奥林匹克日
2020年06月25日 全国土地日
2020年06月25日 端午节
2020年06月26日 国际禁毒日
2020年06月30日 世界青年联欢节
2020年07月01日 中国共产党诞生日
2020年07月01日 香港回归日
查看更多节日