• Nginx 配置实例-配置负载均衡


    0. 实例效果

    1. 两个 tomcat 的安装(可选)

    这里的两个 tomcat,实际是为了模拟后端真实服务器,既然是默认后端服务器,当然也可以选用其他服务器软件,所以这一步为可选操作。

    1.1 tomcat8081 的安装

    1.1.1 tomcat8081 安装包的装备

    # 解压 tomcat 安装包
    tar zxvf apache-tomcat-7.0.70.tar.gz	
    		
    # 复制 tomcat 安装文件到 /usr/local/tomcat8081 目录
    cp -vr apache-tomcat-7.0.70 /usr/local/tomcat8081
     

     

    1.1.2 tomcat8081 配置文件的修改

    因为这里不是使用 tomcat 的默认端口进行安装,所以需修改 tomcat 的部分端口,修改 server.xml 文件,修改部分如下:
    在这里插入图片描述
    在这里插入图片描述

    1.1.3 验证

    /usr/local/tomcat8081/bin/startup.sh			# 启动 8081 端口的 tomcat
    /usr/local/tomcat8081/bin/shutdown.sh			# 停止 8081 端口的 tomcat 
    ps aux | grep tomcat							# 查看 tomcat 进程状态
     

     

    tomcat8081 启动后,浏览器访问 tomcat8081 所在主机 IP 及对应端口,显示页面如下:
    在这里插入图片描述

    1.1.4 相关目录及文件的创建

    在 /usr/local/tomca8081/webapps/ 目录下创建 edu 目录

    mkdir -v /usr/local/tomcat8081/webapps/edu
     

     

    在 edu 目录下创建文件 a.html,并填写如下内容:

    <h1>edu-----8081 !!!</h1>
     

     

    浏览器访问 http://192.168.25.120:8081/edu/a.html,显示页面如下:
    在这里插入图片描述

    1.2 tomcat8082 的安装

    1.2.1 tomcat8082 安装包的装备

    # 解压 tomcat 安装包
    tar zxvf apache-tomcat-7.0.70.tar.gz	
    		
    # 复制 tomcat 安装文件到 /usr/local/tomcat8082 目录
    cp -vr apache-tomcat-7.0.70 /usr/local/tomcat8082
     

     

    1.2.2 tomcat8082 配置文件的修改

    因为这里不是使用 tomcat 的默认端口进行安装,所以需修改 tomcat 的部分端口,修改 server.xml 文件,修改部分如下:
    在这里插入图片描述
    在这里插入图片描述

    1.2.3 验证

    /usr/local/tomcat8082/bin/startup.sh			# 启动 8082 端口的 tomcat
    /usr/local/tomcat8082/bin/shutdown.sh			# 停止 8082 端口的 tomcat 
    ps aux | grep tomcat							# 查看 tomcat 进程状态
     

     

    tomcat8082 启动后,浏览器访问 tomcat8082 所在主机 IP 及对应端口,此处为 192.168.25.120:8082,显示页面如下:
    在这里插入图片描述

    1.2.4 相关目录及文件的创建

    在 /usr/local/tomca8082/webapps/ 目录下创建 edu 目录

    mkdir -v /usr/local/tomcat8082/webapps/edu
     

     

    在 vod 目录下创建文件 a.html,并填写如下内容:

    <h1>edu-----8082 !!!</h1>
     

     

    浏览器访问 http://192.168.25.120:8082/edu/a.html,显示页面如下:
    在这里插入图片描述

    2. nginx 的安装

    2.1 安装 pcre 依赖

    su - root							// 切换到 root 用户
    
    tar zxvf pcre-8.37.tar.gz			// 解压 pcre 安装包	
    
    cd pcre-8.37						// 进入 pcre-8.37 目录	
    ./configure							// 配置 pcre-8.37 
    make && make install				// 编译安装 pcre-8.37
    
    pcre-config --version				// pcre 安装成功后,查看其版本号
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2.2 安装其他依赖

    su - root							// 切换到 root 用户
    
    // 安装其他依赖
    yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
     

     

    2.3 Nginx 的安装

    su - root							// 切换到 root 用户
    
    tar zxvf nginx-1.12.2.tar.gz		// 解压 nginx-1.12.2.tar.gz 安装包
    
    cd nginx-1.12.2						// 进入 nginx-1.12.2 目录
    ./configure							// 配置 nginx-1.12.2
    make && make install				// 编译安装 nginx-1.12.2
     

     

    2.4 验证

    /usr/local/nginx/sbin/nginx				// 启动 nginx
    /usr/local/nginx/sbin/nginx -s stop		// 停止 nginx
    ps -ef | grep nginx						// 查看 nginx 进程状态
     

     

    启动 nginx 之后,浏览器访问 nginx 所在主机的 IP 即端口,此处为 192.168.25.120:80(80为默认短裤,访问时可省略),显示页面如下:
    在这里插入图片描述

    3. nginx 负载均衡的配置

    3.1 负载均衡方式 1——轮询(默认)

    轮询:每个请求按时间顺序逐一分配给后端服务器,如果后端服务器 down 掉,则自动将其剔除;
    使用轮询的负载均衡方式,修改 nginx 的配置文件如下:
    在这里插入图片描述
    浏览器访问 http://192.168.25.120/edu/a.html,显示页面如下:
    在这里插入图片描述
    刷新,显示页面如下:
    在这里插入图片描述
    可以看到使用默认的轮询方式进行负载均衡,浏览器请求被平均分配给后端的 8081、8082 两个服务器进行处理。

    3.2 负载均衡方式 2——weight

    weight:权重,默认值 1,根据权重设置分配请求的几率,权重值越大,分配到的请求越多。
    使用权重的负载均衡方式,修改 nginx 的配置文件如下:
    在这里插入图片描述
    浏览器访问 http://192.168.25.120/edu/a.html,显示页面如下:
    在这里插入图片描述
    再次刷新,显示页面如下:
    在这里插入图片描述
    刷新,显示页面如下:
    在这里插入图片描述
    可以看到使用 weight 的轮询方式进行负载均衡,浏览器发送 3 个请求,有 2 个被分配给 8082 的服务器(几率 2/3),有一个被分配给 8081 的服务器(几率 1/3)。

    3.3 负载均衡方式 3——ip_hash

    ip_hash:哈希,每个请求按访问 IP 的哈希结果进行分配,这样每个访客固定请求一个后端服务器,可以解决 session 的问题。
    使用 ip_hash 的负载均衡方式,修改 nginx 的配置文件如下:
    在这里插入图片描述
    浏览器访问 http://192.168.25.120/edu/a.html,显示页面如下:
    在这里插入图片描述
    刷新,显示页面如下:
    在这里插入图片描述
    可以看到使用 ip_hash 的轮询方式进行负载均衡,无论刷新多少次,请求始终被分配给 8081 服务器。

    3.4 负载均衡方式 4——fair

    fair:根据页面大小、加载时间长短智能的进行负载均衡。
    nginx-upstream-fair-master fair模块源码

    参考资料

    《尚硅谷Nginx教程》11-nginx配置实例(负载均衡)
    nginx-upstream-fair-master fair模块源码

     
     
     
  • 相关阅读:
    2019-2020-1 20175317 《信息安全系统设计基础》第二周学习总结
    2019-2020-1 20175317 《信息安全系统设计基础》第一周学习总结
    2018-2019-2 20175317 实验五《网络编程与安全》实验报告
    20175317 《Java程序设计》个人项目
    回文数
    勾股数
    四方定理
    尼科彻斯定理
    实现mypwd
    2019-2020-1 20175301 20175305 20175318 实验五 通讯协议设计
  • 原文地址:https://www.cnblogs.com/xiao-xue-di/p/12834702.html
Copyright © 2020-2023  润新知