APP后台开发运维与架构实践 5 : Nginx --- App后台HTTP服务的利器
2018-01-28 20:17
851 查看
Nginx是一个高性能的HTTP和反向代理服务,占用内存少,并发能力强。
进程解析:master process和worker process
每个模块的含义:
main:Nginx的全局属性配置
event:Nginx的工作模式及连接数上限
http:http服务器相关属性的配置
upstream:负载均衡属性的配置
server:虚拟主机的配置
location:location的配置
支持4种负载均衡算法。
HTTPS的配置:App经常需要通过HTTPS协议来访问某些对安全性很高要求的API。
生产环境中修改配置的良好习惯:
应用集群内的机器不能直接访问网络,所有数据的进出都要经过负载均衡服务器。
这个方案有以下两个好处:
保证了应用服务的高可用,即使有台应用服务器宕机,其他服务器也会继续工作。
应用服务器不直接连接Internet,减少了被入侵的可能性。
这个方案还有个问题:负载均衡服务器只有一台,如果宕机,整个服务就不可用。现在业界普遍解决Nginx高可用的方法是Nginx+Keepalived,部署两台Nginx服务器,通过Keepalived把外网ip绑定到一台Nginx服务器上,如果这台宕机,Keepalived就把这个ip漂移到另外一台Nginx服务器上。
现在云服务器提供了负载均衡SLB的服务。
Lua设计目的是为了嵌入到应用程序中,从而为应用程序提供更灵活的扩容功能。
5.1 简介
全球Top1000的网站中,有44.8%使用Nginx5.2 基本原理
工作模型:使用了epoll和kqueue网络I/O模型,而Apache则使用的是传统的select模型,目前也使用epoll。进程解析:master process和worker process
5.3 常用配置
nginx.conf是纯文本。每个模块的含义:
main:Nginx的全局属性配置
event:Nginx的工作模式及连接数上限
http:http服务器相关属性的配置
upstream:负载均衡属性的配置
server:虚拟主机的配置
location:location的配置
支持4种负载均衡算法。
HTTPS的配置:App经常需要通过HTTPS协议来访问某些对安全性很高要求的API。
生产环境中修改配置的良好习惯:
5.4 性能统计
如果reading+writing数目较多,则说明并发访问量大,Nginx正在处理过程中。5.5 实现负载均衡的方案
为了保证应用服务器高可用,可使用Nginx负载均衡和健康检查特性,一个初级的方案:绑定两个ip,外网ip和内网ip。用DNS服务把域名绑定到外网ip,通过内网ip和应用服务集群内的服务器通信。应用集群内的机器不能直接访问网络,所有数据的进出都要经过负载均衡服务器。
这个方案有以下两个好处:
保证了应用服务的高可用,即使有台应用服务器宕机,其他服务器也会继续工作。
应用服务器不直接连接Internet,减少了被入侵的可能性。
这个方案还有个问题:负载均衡服务器只有一台,如果宕机,整个服务就不可用。现在业界普遍解决Nginx高可用的方法是Nginx+Keepalived,部署两台Nginx服务器,通过Keepalived把外网ip绑定到一台Nginx服务器上,如果这台宕机,Keepalived就把这个ip漂移到另外一台Nginx服务器上。
现在云服务器提供了负载均衡SLB的服务。
5.6 用Nginx处理业务逻辑
一般不处理任何业务逻辑。为了弥补缺陷添加了Lua模块。Lua设计目的是为了嵌入到应用程序中,从而为应用程序提供更灵活的扩容功能。
相关文章推荐
- 《App后台开发运维和架构实践》读书笔记 - Nginx
- 《App后台开发运维和架构实践》读书笔记 - 案例
- APP后台开发运维与架构实践 6 : MySQL --- App后台最常用的数据库
- [置顶] 《App 后台开发运维和架构实践》完整目录
- App后台开发运维和架构实践学习总结(7)——RESTful API 设计规范
- App后台开发运维和架构实践学习总结(6)——App客户端与后台交互方式总结
- App后台开发运维和架构实践学习总结(8)——后台产品设计的4个原则
- APP后台开发运维与架构实践 7 :Redis---App后台高性能的缓存系统
- [置顶] 《App后台开发运维和架构实践》推荐序
- [置顶] 《App后台开发运维和架构实践》样章下载
- App后台开发运维和架构实践学习总结(9)——三种常见的API设计错误及解决方案
- 《App后台开发运维和架构实践》读书笔记 - Redis
- App后台开发运维和架构实践学习总结(2)——RESTful API设计技巧
- APP后台开发运维与架构实践 2 : App后台基础技术
- App后台开发运维和架构实践学习总结(3)——RestFul架构下API接口设计注意点
- App后台开发运维和架构实践学习总结(2)——RESTful API设计技巧
- APP后台开发运维与架构实践 8 :MongoDB --- App后台新兴的数据库
- 《App后台开发运维和架构实践》资源汇总
- App后台开发运维和架构实践学习总结(3)——RestFul架构下API接口设计注意点
- App后台开发运维和架构实践学习总结(4)——APP的注册和登录功能设计