nginx负载均衡原理(理解篇)

前言

环境: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的安装可以看本人的另外一篇文章https://blog.csdn.net/MssGuo/article/details/114285260,这里就不多做解释,主要的安装命令如下:

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.13080端口对外提供web服务,用户A请求192.168.43.13080端口的web服务,而该LB主机实际上是将请求转发给了服务器池里的web01web02服务器,upstream 可以定义多个,不同的location可以匹配到不同的upstream ,这样,就做到了负载均衡。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值