8、nginx和tengine简介
练习:
使用nginx反向代理(rr调度)用户请求至两个以上的后端LAMP(按标准路径部署的有pma,wd),不管用户请求是什么内容都反向代理至后端服务器去,但是如果用户请求的是图片或者是html,就把这写内容缓存在nginx上,安装pma可以是较老版本,而后写一个脚本使用死循环测试每隔几秒就对站点的URL发请求(定义5个),每次请求都记录在文件中。在请求继续中对对应的pma进行版本升级(backup),把pma老版本写成新版本的过程写成脚本。
(1) 手动更新所有节点上的pma至新版本;
(2) 写脚本实现如上过程;
Tengine http://tengine.taobao.org/
取模法和一致性哈希算法讲解 http://www.zsythink.net/archives/1182
特性
- 继承Nginx-1.8.1的所有特性,兼容Nginx的配置;
- 动态模块加载(DSO)支持。加入一个模块不再需要重新编译整个Tengine;
- 支持HTTP/2协议,HTTP/2模块替代SPDY模块;
- 流式上传到HTTP后端服务器或FastCGI服务器,大量减少机器的I/O压力;
- 支持异步OpenSSL,可使用硬件如:QAT进行HTTPS的加速与卸载;
- 更加强大的负载均衡能力,包括一致性hash模块、会话保持模块,还可以对后端的服务器进行主动健康检查,根据服务器状态自动上线下线,以及动态解析upstream中出现的域名;
- 输入过滤器机制支持。通过使用这种机制Web应用防火墙的编写更为方便;
- 支持设置proxy、memcached、fastcgi、scgi、uwsgi在后端失败时的重试次数
- 动态脚本语言Lua支持。扩展功能非常高效简单;
- 支持按指定关键字(域名,url等)收集Tengine运行状态;
- 组合多个CSS、JavaScript文件的访问请求变成一个请求;
- 自动去除空白字符和注释从而减小页面的体积
- 自动根据CPU数目设置进程个数和绑定CPU亲缘性;
- 监控系统的负载和资源占用从而对系统进行保护;
- 显示对运维人员更友好的出错信息,便于定位出错机器;
- 更强大的防攻击(访问速度限制)模块;
- 更方便的命令行参数,如列出编译的模块列表、支持的指令等;
- 可以根据访问文件类型设置过期时间;
- …