【Nginx实战】(一)——Nginx要点内容总结

本文介绍了Nginx在负载均衡中的应用,包括轮询、加权轮询等策略,以及反向代理与正向代理的区别。通过DNS轮询、四/七层负载均衡设备等方式实现负载均衡,并探讨了Nginx作为七层负载均衡器的角色,以及在处理session共享和双机高可用方案中的实践问题。
摘要由CSDN通过智能技术生成

这里写图片描述

解决问题

单台服务器已经无法承担大量用户的并发访问,必须采用多台服务器协同工作,以提高计算机系统的处理能力和计算强度(集群),满足当前业务量的需求。如何完成同样功能的多个网络设备之间实现合理的业务量分配——负载均衡。

负载均衡策略/算法

  • 轮询:依次分发到每台应用服务器上,所以每台处理请求数相同
  • 加权轮询:按照配置的权重将请求分发,高性能的服务器分配更多请求。
  • 随机:随机分配
  • 加权随机:
  • 最少连接:记录每个应用服务器正在处理的连接数,将新的请求分发到最少连接的服务器上。
  • 加权最少连接
  • 源地址散列:根据来源的IP地址进行Hash计算得到应用服务器,这样来自同一个IP地址的请求总在同一个服务器上处理。该请求的上下文信息可以存储在这台服务器上

负载均衡的实现方法

步骤

1.根据负载均衡算法和Web服务器列表计算得到集群中一台Web服务器的地址。
2.将请求数据发送到该地址对应的Web服务器上。

方案

【1】.网页上提供不同线路,不同服务器连接的方式

【2】.DNS轮询

对同一主机名添加多条A记录,DNS服务器将解析请求按照A记录的顺序,随机分配到不同的IP。
缺点:
可靠性不高,DNS轮询的服务器发生故障,不会及时响应,继续接收请求。即使在记录中去掉,也会有缓存。
负载分配不均衡,简单轮询,不能做到性能好的多分配请求;本地DNS缓存已解析的域名到IP的映射,使一段时间内一直访问同一台。
场景:可靠性要求不高的服务器集群。图片服务器集群等。

【3】.四/七层负载均衡设备(硬件和软件)

开放系统互联模型(OSI):用于不同机型,操作系统或公司的网络体系结构能够互连。

这里写图片描述
硬件四/七层负载均衡交换机: F5
软件四层负载均衡:LVS (Linux Virtual Server)

采用IP负载均衡技术和基于内容请求分发技术

软件七层负载均衡

大多基于HTTP反向代理方式,Nginx
Nginx可以按轮询、IP哈希、URL哈希、权重等多种方式对后端服务器做负载均衡,还支持后端服务器的健康检查。

【4】.多线多地区智能DNS解析和混合负载均衡*
“线”:网通、电信……

应用场景

1、http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器
2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

修改/usr/local/nginx/conf/nginx.conf文件,添加两个虚拟主机,如下:
#配置虚拟主机aaa.test.com 
server {
        #监听的ip和端口,配置本机ip和端口
        listen 192.168.101.3:80;        
        #虚拟主机名称是aaa.test.com,请求域名aaa.test.com的url将由此server配置解析
        server_name aaa.test.com;    
        #所有的请求都以/开始,所有的请求都可以匹配此location
        location / {
        #使用root指令指定虚拟主机目录即网页存放目录
        #比如访问http://ip/test.html将找到/usr/local/aaa_html/test.html
        #比如访问http://ip/item/test.html将找到/usr/local/aaa_html/item/test.html
                root /usr/local/aaa_html;   
                #指定欢迎页面,按从左到右顺序查找
                index index.html index.htm; 
        }
    }
#配置虚拟主机bbb.test.com
    server {
        listen 192.168.101.3:80;
        server_name bbb.test.com;
        location / {
                root /usr/local/bbb_html;
                index index.html index.htm;
        }
    }

3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

正向代理VS反向代理

反向代理是指:以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求链接的客户端。

正向代理:代理服务器代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。因为请求哪个Web服务器是不确定的,而且这些Web服务器并没有配置这个代理服务器,所以不支持外部对内部网络的访问请求。

这里写图片描述

这里写图片描述

反向代理VS负载均衡

反向代理,是把一些静态资源存储在服务器上,当用户有请求的时候,就直接返回反向代理服务器上的资源给用户,而如果反向代理服务器上没有的资源,就转发给后面的负载均衡服务器,负载均衡服务器再将请求分发给后端的web服务器。 区别就是:反向代理服务器是需要存储资源的,让用户更快速的接收到资源 负载均衡就是,为了保证后端web服务器的高可用,高并发,是不需要要存储资源,只需要转发用户的请求。

实践问题

session共享

nginx对tomcat做负载,怎么解决session共享的问题?——tomcat-redis-session-manager-master

nginx负载均衡和反向代理配置

Upstream模块中的Server指令用于指定后端服务器的名称和参数。可以是域名,IP或端口号。
server{……}虚拟主机内,通过proxy_pass和fastgi_pass指令设置进行反向代理的upstream服务器集群。
proxy_set_header指令用于在向反向代理的后端Web服务器发起请求时添加指定的Header头信息。
proxy_set_header Host 设置域名

nginx双机高可用

防止一台nginx宕掉,加一台备用机。
方案一:正常情况下只有一台用于负载均衡,另一台空闲。可以用keepalive软件实现一台出问题时切换到另一台。
方案二:两台都用于负载均衡。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值