概述
Nginx是一个高性能的HTTP和反向代理服务,占用内存少,并发能力强。
5.1 简介
全球Top1000的网站中,有44.8%使用Nginx
5.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后台开发运维与架构实践 5 : Nginx --- App后台HTTP服务的利器的全部内容,希望文章能够帮你解决APP后台开发运维与架构实践 5 : Nginx --- App后台HTTP服务的利器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复