Nginx(三):负载均衡策略 与 Nginx静态服务器

Nginx(三):负载均衡策略 与 Nginx静态服务器

 

相关阅读:

Nginx(一):Nginx原理概述 与 安装步骤详解

Nginx(二):反向代理原理 与 配置文件详解

Nginx(三):负载均衡策略 与 Nginx静态服务器

Nginx(四):Nginx配置实战


 

Nginx使用最多的三个核心功能是反向代理、负载均衡和静态服务器。在前面的博客中,我们已经介绍过Nginx的反向代理功能能,这篇博客主要介绍nginx的负载均衡策略,以及作为静态服务器的使用。

所谓负载均衡, 负载均衡即是代理服务器将接收的请求均衡的分发到各服务器。负载均衡主要解决网络拥塞问题,提高服务器响应速度,服务就近提供,达到更好的访问质量,减少后台服务器大并发压力。

 

一、Nginx的负载均衡策略:

1、加权轮询算法(默认)

按照接收的请求顺序 逐一分配到不同的后端服务器,即使在使用的过程中,某一台后端服务器宕机,nginx会自动将该后端服务器剔除,请求受理情况不会受到任何影响。存在session丢失的问题。

upstream backserver { 

server 192.168.0.14; 

server 192.168.0.15; 

在这种方式下,可以给不同的后端服务器设置权重值weight,用于调整不同的服务器上的请求的分配率;权重数据越大,被分配到的请求的几率越大;适合用于后端服务器性能不均衡的情况。

upstream backserver { 

server 192.168.0.14 weight=10; 

server 192.168.0.15 weight=10; 

2、与IP地址绑定 ip_hash:

每个请求 按照 发起请求的客户端的ip的hash结果进行分配,在这种算法下,每个ip请求都会访问到一个固定的后端服务器。可以再一定程度上解决集群部署环境下session共享的问题。

upstream backserver { 

ip_hash; 

server 192.168.0.14:88; 

server 192.168.0.15:80; 

3、fair智能调整算法:

智能调整调度算法,动态根据后端服务器处理请求的响应时间进行均衡分配,响应时间短处理效率高的服务器 分配到请求的概率高,响应时间长处理效率低的服务器分配到请求的概率低。nginx本身不支持fair算法,需要安装upstream_fair模块。

upstream backserver { 

server server1; 

server server2; 

fair; 

4、url_hash:

按照访问的url 的hash结果分配请求,每个请求的url都会指向后端固定的某台服务器。在nginx作为静态服务器的情况下 可以提高后端服务器的缓存效率。nginx默认不支持这种调度算法,要使用的话需要安装nginx的hash软件包。

upstream backserver { 

server squid1:3128; 

server squid2:3128; 

hash $request_uri; 

hash_method crc32; 

 

二、Upstream支持的状态参数:

在Nginx的Upstream模块中,除了可以通过server指定到特定服务器和端口,还可以设置服务器在负载均衡中的状态。目前的状态如下:

1、down:代表当前的服务器server不参与负载均衡。

2、backup:预留的备用设备,也就是当其它的服务器故障或忙时才会分配它给客户请求,所以它的压力最小。

3、max_fails:服务器server允许请求失败的次数,默认为1次,当失败次数超过限定的次数,就会返回proxy_next_upstream错误信息。

4、fail_timeout:当经历了max_fails的次数后,暂停服务的时间,一般与max_fails配合使用。

注意:

当服务器的调度算法为ip_hash时,服务器在负载均衡中的状态不能是weight和backup。

 

三、搭建nginx静态文件服务器:

本部分内容基于Centos7系统。

(1)进入配置文件目录:

cd /usr/local/nginx/conf/

(2)在nginx的默认配置文件中进行配置:

vim nginx.conf

需要把nginx的根目录指向上传文件的目录:按下面代码修改root的目录路径,然后保存退出。

 server {

        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            root   /home/servicemarketpic/serviceMarket;
            index  index.html index.htm;
        }

(3)重新加载nginx配置文件:

 ./nginx -s reload

 

 

参考博客:https://blog.csdn.net/why_2012_gogo/article/details/50967520 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114626.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • zabbix监控面试题[通俗易懂]

    zabbix监控面试题[通俗易懂]监控基础概论zabbix并非监控,而是实现监控的工具Zabbix-server是一个c/s和b/s结构安装zabbbix的服务器安装时和php7.1有冲突:若此机器上已经安装php7.1就安装不上zabbix监控知识体系为什么要使用监控1.对系统不间断实时监控2.实时反馈系统当前状态3.保证服务可靠性安全性4.保证业务持续稳定运行如果去到…

    2022年6月12日
    60
  • 【网络模拟】Network Emulator for Windows Toolkit

    【网络模拟】Network Emulator for Windows Toolkit公司软件产品 EB 的采集端在网络状况正常时 可进行视频直播 但在网络较差时会出现卡顿 现使用 NEWT NetworkEmula 模拟延时的网络环境下进行直播测试 NEWT 是一个简单实用的网络模拟工具软件 开始是微软内部为搭建网络模拟服务于网络的研究工作而开发 之后开发维护并将 NEWT 的核心代码先后成功地转移到了微软的产品 XboxXDK Games

    2025年11月9日
    3
  • win10安装PHP环境

    下载地址:https://windows.php.net/downloads/releases/然后将下载的文件解压到本地目录,我放在F:\wamp\目录下的php文件夹(不要下载非线程安全的版本,里面没有phpX(5,7)apache2_4.dll的拓展文件),配置apache的时候要用到将php配置在apache里,没安装apache环境的参考:https://blog.csdn….

    2022年4月8日
    46
  • 详解网站WEB日志格式

    详解网站WEB日志格式WEB日志是网站的WEB服务处理程序,根据一定的规范生成的ASCII文本。它主要记录了网站访问记录数据内容,是网站分析和网站数据仓库的数据基础来源,而网站分析和数据分析也将对SEO产生一定的影响,所以了解WEB日志的格式和组成将有利于我们更好地进行网站数据的收集、处理和分析,从而更好的进行网站优化。一、WEB日志格式分类目前常见的WEB日志格式主要由两类,一类是Apache的NCSA日志格

    2022年5月18日
    43
  • div:给div加滚动条 div的滚动条设置

    div:给div加滚动条 div的滚动条设置
    今天做了个例子:
    div的滚动条问题:
    两种方法:
    一、

    记住宽和高一定要设置噢,否则不成的

    不过在不超出时,会有下面的滚动条,所以不是最好的选择
     
    二、

    2022年7月12日
    20
  • dede后台出现   保存目录数据时失败,请检查你的输入资料是否存在问题

    dede后台出现   保存目录数据时失败,请检查你的输入资料是否存在问题

    2021年9月24日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号