低成本优化 ecshop 商城

在独立商城这块,大家多多少少,应该都听说过 ecshop,这款十来年前的老商城,虽然没有昔日的辉煌,但基于其庞大的用户量,还是有不少的老用户的。

由于其年代远、技术旧、版本低、缺维护等等原因,对业务造成了不小的负面影响。所以很多客户都想花较低的成本对其进行一个优化。

最近就遇到了一个 8 年前的老客户,现用较低的成本,把系统改造一下。以下是我给他改造的方案,仅供大家参考:

  1. 数据库迁移

这个客户是单机架构,PHP和MYSQL、NGINX都在一台服务器上,由于当年的预算不高,而且年代也比较远,又没有技术人员维护,所有表都使用的是MYISAM,MYSQL都是默认配置,日志表、日志文件超级大,所以每次有流量来的时候,服务器负载就比较高,访问速度也直线下降。虽然升级mysql、修改存储引擎、调整mysql配置、清理日志等操作都可以起到优化的作用,但是人力的成本,远高于机器,所以我推荐他们,直接迁移到阿里云RDS上去,一步到位。在这个过程中,有两个注意点,一是rds只支持InnoDB,必须先修改一下存储引擎; 二是检查一下有没有开启自动提交(autocommit)。

  1. session优化

因为ecshop默认是把session存储到数据库中一张名为session_data的表里,频繁的对数据库进行操作,当然会增加服务器的负载呢,并且效率也很比较低,所以较理想的方式,就是把session放到memcache里面来存储和管理,这种改造,成本也比较低,在init.php里面注释掉session相关的代码,然后安装memcache扩展,搭建memcache服务,配置php.ini,重启一下fpm就可以了。不过这里也有一个坑,需要注意,就是字符串转义问题,如果不解决,商城后台的权限就会有问题。

  1. php 和 nginx 调优

一般来说,调优都是先看看慢日志,再看看目前的配置,fpm慢日志,它没有配置,但是错误日志里面经常有很多以下的提示,所以我在看了它的fpm配置之后,在基于它的服务器配置和业务情况将pm=dynamic改成了pm=static,再把pm.max_children=50改成了pm.max_children=200,然后为了防止第三方库中的内存泄漏将pm.max_requests=1000,这样一来,以下的提示就再没有出现过了。nginx优化了转发规则和进程数量。
在这里插入图片描述

  1. 静态文件缓存

因为预算有限,客户没有CDN, 所有静态文件都在服务器上,带宽也比较低,所以页面加载比较慢,在启用了压缩的情况下,又配置了缓存,以此增加了些许访问效率,但效果其实不大

  1. 商品点击量优化

点击量它原来的逻辑是直接在商品详情页面 UPDATE 'ecs goods' SET click count = click count + 1 WHERE goods id = id这样做的弊端不言面喻了。比较好的做法很多,但是因为预算有限,加上业务也不关心,所以直接注释了。

  1. https 证书自签

本来上线那一会儿,他是买了证书的,现在是过期了,没有续。所以直接在NGINX之前加了一层caddy。可能很多人对caddy了解不多,其实Caddy是一个支持 HTTP/2 的跨平台 Web 服务器,使用和配置都非常简单。 它最大的亮点就是支持自动https续签。这种算是最低成本的改造了,所以没得挑。当然这种证书有些浏览器可能无法验证,使用的时候要注意一下。

以上就是本次最低成本的优化方案了,仅供参考,当然还有很多的小细节,就没有一一举例了。

–end–

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值