《App后台开发运维和架构实践》读书笔记 - Nginx (反向代理+负载均衡)

5.2 基本原理

网络请求处理,使用高效的epoll;

master进程只在一开始创建所有的worker进程,有请求就唤醒自己,将请求交给worker进程去做,然后继续沉睡;worker进程们实际干活儿;

 

5.3 配置

工作进程数;每个进程打开的文件描述符上限;

每个worker进程的连接上限;

sendfile:高效传输文件模式:从文件读到cache,不经过用户态buffer中转,直接写入buffer,发给TCP socket;

支持gzip压缩

负载均衡策略选择:

1. 时间轮询(默认),手动配置每个服务器的值班时间比例,请求按时间分配到不同的服务器上;

2. 按照请求来自的ip,哈希到不同的服务器上;优点:同一个客户端ip,每次固定发到同一个服务器上,该服务器可以cache住该ip的session数据;

3. 按照请求的URL来哈希到不同的服务器上;优点:可提高服务器的缓存命中率;

4. 公平:谁干活儿快就多分给谁一些请求;

 

 

5.4 性能统计

可以查到Nginx的状态信息:http://域名/nginx_status

 

 

5.5 实现负载均衡的方案

[Internet]---api请求--->[负载均衡服务器,有一个外网ip, 一个内网ip]---转发api请求--->[多台内网应用服务器,各自只有一个内网ip]

通过DNS服务,将外网ip和域名绑定上;

负载均衡服务器上部署Nginx

词方案好处:

- 保证了应用服务的高可用,一台宕机不影响服务的可用性;

- 应用服务器不直接连外网,减少了被入侵的可能性;

问题:负载均衡服务器只有一台,宕机了怎么办?

解决:Nginx+Keepalived, 部署两台Nginx负载均衡服务器,通过Keepalived将外网ip绑定到一台上,如宕机,Keepalived自动把这个外网ip漂移到另一台上;

建议使用云服务的负载均衡服务;

 

 

5.6 Nginx处理业务逻辑

以前Nginx只负责请求转发,不处理任何业务逻辑;

Nginx+Lua,可以处理一些简单的业务了,复杂业务逻辑仍然交给应用服务器;

 

Nginx做反向代理

即外界(前端App)通过域名访问后台nginx, nginx把请求转发给内网服务器。

 

反向代理+负载均衡

正向代理的用途:

访问原来无法访问的资源,如 Google。可以做缓存,加速访问资源。对客户端访问授权,上网进行认证。代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息。

反向代理的作用:(Nginx)

保证内网的安全,通常将反向代理作为公网访问地址,Web 服务器是内网。负载均衡,通过反向代理服务器来优化网站的负载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值