首页 > 技术文章 > Nginx 入门

ruhuanxingyun 2019-05-04 13:37 原文

简介:Nginx由俄罗斯的伊戈尔·赛索耶夫使用C语言编写的,是一个高性能的http和反向代理服务器,也是一个通用的TCP/UDP代理服务器,特点是占用内存少,并发能力强。

1. 特点

  A. 正向代理(为客户端服务)和反向代理(为服务端服务)

    正向代理:指局域网中的电脑用户想要直接访问网络是不可行的,只能通过代理服务器来访问的代理方式;

    反向代理:客户端无法感知代理,因为客户端访问网络不需要配置,只要把请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据,然后再返回到客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址;

 

  B. 解决跨域;

  C. 请求过滤(接口基础认证);

  D. 负载均衡;

  E. 静态资源服务器

    动静分离:指把之前的动态资源和静态资源都放在Tomcat里面变为静态资源放置Nginx;

  F. 配置gzip;

  G. 本地缓存。

 

2. 负载均衡

  A. 分类:

    硬件负载均衡(F5)和软件负载均衡(Nginx);

    DNS负载均衡、IP负载均衡、链路层负载均衡、混合型负载均衡;

  B. 作用:用来将众多的客户端请求合理的分配到各个服务器,以达到服务器资源的充分利用和更少的请求时间,同时减少单个服务器的压力;

  C. 负载均衡策略

    轮询(Round Robin):对所有的请求进行轮询发送,是默认的策略;

    最小连接数(Least Connections):以最少的活动连接数将请求发送,upstream值为least_conn,同样要考虑服务器的权重;

    客户端ip绑定(IP Hash):发送请求的服务器由客户端IP地址决定,upstream值为ip_hash;

    最快响应时间(Least Time):选择请求具有最低平均延迟和最低活动连接数的服务器来发送,upstream值为least_time header;

    随机选择(Random):每个请求将被传递到随机选择的服务器,upstream值为random two least_time=last_byte;

 

3. 常见负载均衡器

  A. 四层负载均衡:基于IP和端口实现,起到转发的作用,TCP的连接建立是客户端和服务器直接建立的;

    LVS:重量级软件,部署麻烦,但是性能高,应用范围广;

    HAProxy:轻量级软件,支持的负载均衡策略多,比较灵活;

    Nginx:轻量级软件,对Session支持不友好;

  B. 七层负载均衡:基于URL或域名等应用层信息实现,起到代理的作用,负载均衡器和客户端以及服务器都会建立TCP连接;

    HAProxy:灵活性高,支持Session会话保持;

    Nginx:支持高并发,正则灵活配置,部署简单,适合静态和反向代理;

    Apache:性能较差,适合处理动态请求;

 

4. Nginx高可用

  A. 安装Keepalived,修改keepavlied.conf配置文件;

  可参考:Keepalived + Nginx 实现高可用 Web 负载均衡

 

可参考:Nginx五大应用场景

 

推荐阅读