负载均衡Nginx

  nginx负载均衡是根据它的均衡策略,将负载(请求)分配给后端不同的服务器处理。如后端某些服务器挂了,会分配给其他运行正常的服务器处理,如某些服务器正在处理,新一次的请求会让那些比较空闲的服务器处理。

  所以它能使你的服务响应快,可用性高。

  均衡策略:

  1、轮询(默认)
  每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
  2、weight
  指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
  3、ip_hash
  每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
  4、fair(第三方)
  按后端服务器的响应时间来分配请求,响应时间短的优先分配。
  5、url_hash(第三方)
  按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

    

  负载均衡的问题,如果同一个用户的两次请求分别分配到两个不同的服务器上,会造成用户的session丢失;如果用户上传文件,nginx分配给一个服务器,然后用户去下载该文件,nginx可能会分配给另一个服务器处理,由于文件保存在前一个服务器而导致文件不存在。

  通常决解是将session和文件保存到数据库,也有使用缓存。

  

  nginx与apache分别是两种服务器,apache在每次处理一个用户请求时会创建一个进程,nginx是创建一个线程,多个线程共享某一个进程。apache每秒能处理的并发请求数量为3000个,nginx为50000个。

 

  




wKiom1NhAXrBLo_1AAEhYUrHQmM672.jpg

原文地址:https://www.cnblogs.com/linying/p/4572286.html