高并发Web网站构建-徐汉彬
浏览器并发连接数
一次HTTP通信
TCP三次握手
(保持连接)
请求数据/响应数据
(达到超时条件)
TCP四次断开
短连接,长连接Keep-alive
==================
Apache
apachctl -v 版本
Prefock模式
多进程
成熟文档,允许线程不安全
进程比较重,消耗太多内存
Woker模式
多进程和多线程
线程为主
占用内存少
需要支持线程安全,线程崩溃问题
Event模式
同Worker模式
解决Keep-alive资源浪费问题
使用条件
Apache 2.4.10
Epoll支持
===================
Nginx
建议配置进程数跟CPU核数一样
CDN
每个地区一个节点,发布源分发
推荐Web服务架构
Nginx/LVS — Web服务器集群—redis缓存(热点数据)—数据库存储
静态文件CDN
========================
高并发下的QPS的真实情况
CPU繁忙
内存爆满,引起swap
后端服务异常
高并发下的保护措施
设置合理进程/线程数(防止过载)
设置合理的超时时间(各个环节)
如果发生Web服务“雪崩”:不要直接重启,先切流量(404页面)
Web服务安全防护
XSS:输入可以执行代码
防御方法 : 过滤
CSRF防御:引诱用户点击“特殊链接”
判断HTTP_REFERCES
TOKEN校验
SQL注入
Shell注入
高并发业务安全
队列思路 one by one
悲观锁
乐观锁,带版本号
推荐Redis乐观锁
watch //监听key的版本号
电商秒杀
NOSQL
node.js并发性能