您的位置:首页 > 理论基础 > 计算机网络

APP后台开发运维与架构实践 5 : Nginx --- App后台HTTP服务的利器

2018-01-28 20:17 851 查看
   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设计目的是为了嵌入到应用程序中,从而为应用程序提供更灵活的扩容功能。

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐