nginx负载均衡(轮询与权重)

1. nginx的介绍

Nginx(engine x)是一个高性能的HTTP和反向代理web服务器,同时也是一个开源的、高性能的HTTP和反向代理服务器、IMAP/POP3/SMTP代理服务器。它最初由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发,并以类BSD许可证的形式发布。Nginx因其稳定性、丰富的功能集、简单的配置文件和低系统资源消耗而闻名。以下是Nginx的主要特点和用途:

主要特点

  • 高性能:Nginx采用异步非阻塞的事件处理模型,能够处理高并发连接,支持高达50,000个并发连接数。
  • 轻量级:Nginx具有轻量级的设计,占用的内存和CPU资源相对较少。
  • 高可靠性:Nginx提供了丰富的错误处理机制,能够在高负载下稳定运行。
  • 高度模块化:Nginx的设计高度模块化,模块编写简单,易于扩展和定制。
  • 配置简单:Nginx的配置文件结构清晰,采用嵌套块结构,易于理解和维护。

主要用途

  • Web服务器:Nginx可以作为独立的Web服务器,处理HTTP请求并返回响应。
  • 反向代理:Nginx可以作为反向代理服务器,将客户端的请求转发到后端的应用服务器,隐藏真实的后端服务器,提升安全性和性能。
  • 负载均衡:Nginx支持多种负载均衡算法,如轮询、最小连接数等,可以将请求均衡地分发到多个后端服务器上,提高系统的整体性能和可用性。
  • 邮件代理:Nginx支持IMAP、POP3和SMTP协议,可以作为邮件代理服务器,路由、过滤和传递电子邮件。
  • 动态内容服务:Nginx可以与各种后端应用服务器集成,如PHP、Node.js、Python等,实现动态内容的处理和传递。
  • HTTPS服务:Nginx支持SSL/TLS协议,可以提供安全的HTTPS服务,保护用户数据在传输过程中的安全。
  • 缓存加速:Nginx可以使用内存、硬盘或SSD等作为缓存存储空间,缓存静态内容和动态内容,减少服务器的负载,提高网站的访问速度。

2. nginx使用场景

Nginx作为一款高性能的HTTP和反向代理web服务器,其使用场景非常广泛。以下是Nginx的主要使用场景

  1. 静态文件服务
    概述:Nginx在提供静态资源服务方面效率很高,可以快速响应大量的静态请求,如CSS、JavaScript、图片、视频等文件,从而减轻其他动态服务器的负担。
    优势:Nginx对静态文件的处理非常高效,因为它直接从磁盘读取文件并通过网络发送给客户端,无需经过复杂的处理流程。
  2. 反向代理和负载均衡
    反向代理:Nginx可以作为反向代理服务器,将客户端的请求转发到后端的应用服务器上,并返回处理结果给客户端。这种机制隐藏了真实的后端服务器,提高了系统的安全性。
    负载均衡:Nginx支持多种负载均衡算法,如轮询、最少连接数、IP哈希等,可以根据后端服务器的负载情况动态地分配请求,提高系统的整体性能和可用性。
  3. 缓存服务器
    概述:Nginx可以配置为缓存服务器,缓存一些响应结果,如静态文件、数据库查询结果等,以减少对后端服务器的请求次数,降低后端服务器的负载,提高数据的访问速度。
    优势:缓存机制可以显著提高网站的访问速度,尤其是在高并发场景下,能够有效缓解后端服务器的压力。
  4. SSL加速
    概述:Nginx支持HTTPS协议,可以通过SSL/TLS加密技术保护数据传输的安全性。同时,Nginx还提供了SSL加速功能,可以提高HTTPS访问的性能,减少SSL负载压力。
    优势:SSL加速功能使得Nginx在处理HTTPS请求时更加高效,能够为用户提供更加安全的访问体验。
  5. WebSocket支持
    概述:Nginx也支持WebSocket协议,可以用于实现实时通信应用程序。WebSocket协议允许服务器和客户端之间建立持久连接,并通过该连接进行双向通信。
    应用:WebSocket在实时通信、在线游戏、实时数据推送等领域有广泛的应用。
  6. 访问控制和安全
    概述:Nginx提供了丰富的访问控制功能,如基于IP地址的访问限制、基于用户名的认证等,可以有效保护Web应用程序和服务器的安全。
    优势:通过合理的访问控制策略,Nginx可以防止非法访问和恶意攻击,提高系统的安全性。
  7. 动静分离
    概述:为了提高网站的解析速度和降低服务器的压力,Nginx可以实现动静分离。即将动态页面和静态页面由不同的服务器解析,或者通过Nginx将动态请求和静态请求分开处理。
    优势:动静分离可以显著提高网站的访问速度和系统的整体性能。

3. nginx在windows的下载与安装

nginx下载
在这里插入图片描述
下载下来,直接本地解压就行了
在这里插入图片描述
启动后可能会闪退,很正常,打开任务管理器,这里存在就说明启动了
在这里插入图片描述
访问localhost:80就可以了
在这里插入图片描述

4. nginx的简单使用

打开nginx目录中的html我们创建两个文件夹,然后在其中创建index.html

在这里插入图片描述
在这里插入图片描述
one中的index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>One</title>
</head>
<body>
    <h1>one!!!!</h1>
</body>
</html>

two中的index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Two</title>
</head>
<body>
    <h1>two!!!!</h1>
</body>
</html>

打开nginx中conf文件夹下的nginx.conf配置一下(加上就行)

server {
    listen  8098;
     server_name  localhost;
     location / {
         root   html/one;
         index  index.html index.htm;
     }
 }
 server {
     listen  8097;
     server_name  localhost;
     location / {
         root   html/two;
         index  index.html index.htm;
     }
 }

随后就能访问了
在这里插入图片描述
在这里插入图片描述

5. nginx进行轮询测试

我们在nginx.conf中添加其他语句

upstream  backServer{
    server 127.0.0.1:8098;
    server 127.0.0.1:8097;
}
server {
    listen  8088;
    server_name  localhost;
    location / {
        proxy_pass http://backServer;
    }
}

重启nginx
在任务管理器里面结束nginx的任务,再启动
然后我们访问localhost:8088
一直刷新一下就会看到,两个界面进行轮流访问!!!

6. nginx进行权重测试

修改配置,其他不变

upstream  backServer{
    server 127.0.0.1:8098 weight=2;
    server 127.0.0.1:8097 weight=1;
}

再次重启
进行访问localhost:8088
我们会发现one界面的访问概率比two界面更高

7. 总结

我们简单学习了一下nginx的windows安装和简单的轮询与负载的使用。

欢迎批评指正!!!!


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值