Nginx 高级篇(七)大访问量优化的整体思路

粗略之见,不对的地方希望大神指教。
说实话工作当中我还真没碰到过大访问量的场景,当多就一个秒杀,抢购,发标抢标,访问量也不大,就那么几千几万个人,同一时间几万个人去秒杀,也用不上负载均衡以及负载均衡后边的集群,用了就是高射炮打蚊子,咱也没有在大厂工作的经验,就这么瞎胡乱的写写,也是自己百度摸索以及晚上业余时间搞搞模拟案例,大体总结一下几点

1.对于开发人员来说 尽量减少请求 因为你可以要知道 有请求就占用网络带宽 访问多了 带宽占用的多 那么网络访问就会延迟卡顿 如何减少请求呢?总他们不能不让用户访问吧?
a.合并css 啥意思呢?自己去看163网站 他们的css都是写到html代码里面的 因为你css弄个连接地址不也得去请求吗 虽然是静态的 访问量多了也是占用带宽的啊
b.合并背景图 能用css搞的样式用css写 别是不是就上背景图片 另外可以合并背景图片 有时候你会发现网上很多网站人家那一张背景图是很多图片合成的 也能减少对图片的访问 访问就有带宽
c.减少mysql查询 不是不查询 是尽量减少 能一条sql出来的就一条 当然也不是绝对的哈 一条sql链七八张表也不行 相对的 相对的去减少mysql的查询 去掉不必要的mysql查询 啥叫不必要的mysql查询啊 一条sql能查两个字段出来 你非得弄两条sql各自查一个字段 那不没事找事吗?举个例子而已 开发当中会有很多这种情况发生!
2.对于运维人员来说 开启nginx的expires功能 设置缓存时间 这个和304还不一样 304虽然也是缓存但是还是去请求了服务器的 前边的博客当中我们讲过
3.对于运维人员来说 开启gzip 减小网络传输 不信自己去试试 开启gzip 本身网页50M 开启之后也许就10M 网络传输体积小了 不也节省带宽吗?访问量大了 不也能提升应用的访问速度么!
4.开启cdn加速 cdn好处大大滴 自己去百度 并且百度cdn针对普通用户是免费的 除非你流浪上来了 人家是要收你钱滴 天下没有免费的午餐 这话一点不操蛋!
5.走到这我感觉 就是不可避免的一些请求了 你也就不用想着去减少请求量了 也是迫不得已的办法
负载均衡+服务器集群来支撑 既然响应是不可避免的 我们要做的就是把工作内容平均分配到每台服务器上去 最理想的状态 每台服务器的性能都能被充分利用 当然我说的集群你可以是站点似的集群也可以是memcache缓存集群或者redis集群 看你自己的使用场景来定

题外话:集群当中的服务器也是有讲究的 你得看你想用集群里面的服务器干啥?
比如mysql我们单独部署到一套服务器上 就是存储嘛 那磁盘得牛逼啊 来块ssd固态硬盘 跑的快
比如计算不复杂 就是进程多 比如跑16个20个php-fpm进程 那就内存大点 来它32G 64G内存
比如计算复杂的 算法较多 那就cpu8核或者更高
更专业那都是专业运维的事了 咱也就不懂喽!

本作品采用《CC 协议》,转载必须注明作者和本文链接
胡军
讨论数量: 1

一般前后端分离的站点,把前端部分部署到CDN上,本身CDN就是集群部署的,对于高并发没有压力。主要需要考虑的就是缓存时间和性能优化。 后端部分,瓶颈一般都会出在数据库以及缓存身上。 云服务做不到弹性的数据库和缓存, 所以这两项短时间内都有上限。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!