前言

环境:centos 7.9 nginx-1.18.0.tar.gz nginx 1.18.0

准备环境

1台名为LB1负载均衡服务器,2台web服务器,命名分别为web01、web02,三态服务器都安装nginx-1.18.0.tar.gz这个nginx包,保证版本相同。

nginx负载均衡两个重要组件

http_proxy_module模块:proxy代理模块,用于把请求后抛给服务器节点或upstream服务器池;
http_upstream_module模块:负载均衡模块,可以实现网站的负载均衡功能和节点的健康检查;
nginx会默认安装以上两个模块;

安装nginx

nginx的安装可以看本人的另外一篇文章《nginx的安装及配置文件详解》,这里就不多做解释,主要的安装命令如下:

useradd -s /bin/false -M nginx
yum install make gcc gcc-c++ zlib* pcre*  openssl*            #自己看哪个包没有的就自己安装(或者yum -y install pcre pcre-devel zlib-devel zlib openssl-devel openssl)
tar -zxvf  nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure  --prefix=/usr/local/nginx --user=nginx  --group=nginx
make
make install

配置负载均衡服务器LB1的nginx.conf文件

web01和web02的配置这里就不说了,保证web01和web02都搭建相同的网站就可了,这里主要讲解一下LB1的nginx.conf文件是如何配置的,是怎样配置才能使得LB1成为负载均衡服务器的,如下:

vim nginx.conf

user  nginx;
worker_processes  1;
events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';sendfile        on;keepalive_timeout  65;#配置定义web服务器池,包含两个web节点upstream server_polls{                                  #upstream 是关键字,server_polls是服务器池的名字,这个名字是自定义的server 192.168.43.120:80 weight=1;  #server是关键字,webight=1是参数,表示权重,还可以加很多参数server 192.168.43.121:80 weight=1;}server {                                                                    #虚拟主机listen       80;server_name  192.168.43.130;server_tokens off;access_log  logs/fujiseiko_first.access.log  main;location / {proxy_pass http://server_polls;            #这一句,就表示客户访问192.168.43.130:80时转发请求到server_polls池里的节点proxy_set_header Host $host;          #表示LB向后请求节点服务器时添加主机头来明确访问的节点服务器的哪一个虚拟主机}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
}}

以上配置就大概可以描述成这样: 将主机即负载均衡服务器192.168.43.130的80端口对外提供web服务,用户A请求192.168.43.130的80端口的web服务,而该LB主机实际上是将请求转发给了服务器池里的web01或web02服务器,upstream 可以定义多个,不同的location可以匹配到不同的upstream ,这样,就做到了负载均衡。

nginx负载均衡原理(理解篇)相关推荐

  1. Nginx负载均衡原理与实战

    Nginx 负载均衡原理与实践 本篇摘自<亿级流量网站架构核心技术>第二章 Nginx 负载均衡与反向代理 部分内容. 当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩 ...

  2. 五分钟让你搞懂Nginx负载均衡原理及四种负载均衡算法

    前言 今天这篇文章介绍了负载均衡的原理以及对应的四种负载均衡算法,当然还有对应的指令及实战,欢迎品尝.有不同意见的朋友可以评论区留言! 负载均衡 所谓负载均衡,就是 Nginx 把请求均匀的分摊给上游 ...

  3. nginx负载均衡原理

    负载均衡在服务端开发中算是一个比较重要的特性.因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理前端,因为Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就 ...

  4. Keepalived+LVS+Nginx负载均衡之高可用

    2019独角兽企业重金招聘Python工程师标准>>> 上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致 ...

  5. LNMP(Nginx负载均衡,SSL原理,Nginx配置SSL,生产SSL密钥对)

    一.Nginx负载均衡 负载均衡:单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况.那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以 ...

  6. 负载均衡原理与实践详解 第三篇 服务器负载均衡的基本概念-网络基础

    负载均衡原理与实践详解 第三篇 服务器负载均衡的基本概念-网络基础 系列文章: 负载均衡详解第一篇:负载均衡的需求 负载均衡详解第二篇:服务器负载均衡的基本概念-网络基础 负载均衡详解第三篇:服务器负 ...

  7. Nginx代理,Nginx负载均衡,ssl原理

    Nginx代理 Nginx代理分正向代理和反向代理. http://blog.csdn.net/zjf280441589/article/details/51501408 Nginx代理是在一台代理服 ...

  8. 一文带你深入理解负载均衡原理

    一.背景 "远古时期",单机计算机处理性能很低,一般我们会通过扩容机器配置资源,以便更好承载我们的应用,例如:当时的个人电脑,如果你想玩大型游戏,我们最直接的做法就是替换更好的CP ...

  9. Nginx+keepalived负载均衡高可用篇第③版

    Nginx+keepalived负载均衡高可用篇第③版 对付中.小型企业,假如没有资金去购买昂贵的四/七层负载均衡交换机,那么Nginx是不错的七层负载均衡选择,并且可以通过Nginx + Keepa ...

  10. Nginx负载均衡、ssl原理,生成ssl密钥对,配置Nginxssl

    2019独角兽企业重金招聘Python工程师标准>>> ​11月29日任务 12.17 Nginx负载均衡 12.18 ssl原理 12.19 生成ssl密钥对 12.20 Ngin ...

最新文章

  1. java 调用postgresql 函数_从Java调用PostgreSQL中的存储过程
  2. C语言基础(6)-char类型
  3. C++ stringstream 实现字符与数字之间的转换
  4. 当我们年轻的时候 (转贴)
  5. HC-05蓝牙模块基本使用
  6. 快速浏览JAX-RS请求与方法匹配
  7. 操作系统(二): 进程与线程
  8. php study是什么,phpstudy与wamp区别的区别是什么?
  9. tomcat顶层架构
  10. 数据科学 IPython 笔记本 8.6 可视化误差
  11. 这个韩国女星在节目里吃了“巨型蛤蜊” 可能要坐牢5年了...
  12. carsim中质心加速度_Carsim整车建模参数.doc
  13. 嵌入式系统应用开发—FPGA开发板—一位全加器仿真测试
  14. 过程FMEA:失效模式/失效起因的理论+实例
  15. 搭建属于你的家庭网络实时监控–HTML5在嵌入式系统中的应用·高级篇
  16. Matlab实现Holland风场
  17. 【java】Integer == Integer?
  18. ZJU PAT的一些代码
  19. MySQL 架构与 SQL 执行流程
  20. 项目管理手记(29)ERP项目高层大力支持的冰火两重天

热门文章

  1. eslint 换行_给 eslint 写一个插件
  2. Sql 查询库、表、列名的语句
  3. 第二次作业:分布式版本控制系统Git的安装与使用
  4. 用于查询当前数据库中所有表格的记录条数的脚本
  5. 右键菜单 GenericMenu
  6. [Linux_Ubuntu13] 声音很小前台无法调节的处理方法
  7. C# 网页自动填表自动登录 .
  8. 关于.NET异常 你应该知道的更多点
  9. 自定义线程池-c#的简单实现
  10. macOS BigSur下根目录下无法创建文件