nginx简单配置负载均衡

本文介绍了如何在Linux服务器上设置nginx负载均衡,通过实例展示了简单的负载均衡配置,包括轮询、哈希和加权随机策略,并提供了配置步骤和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

心血来潮,研究一下linux服务器负载均衡的知识点。本来以为很简单的一个事情,不想还是研究了大半天的时间,想想还是记录下来,以防万一后面再遇到类似的坑。

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

由于没有自己用的测试服务器,所以就装了一个虚拟机(VMware),然后在虚拟机中装了两台centos7。

测试用例A:192.168.0.150

测试用例B:192.168.0.151

对了,linux查看本机IP命令:ifconfig

思路:将A作为主服务器,本地hosts文件中定义一个域名,我这里用的域名是151net.com。(这个自己随意在本地定义就好)

在A服务器中打开nginx.conf文件,在http块内,server块外面添加

upstream 151net { 
      server  192.168.0.151:80; 
      server  192.168.0.150:8088; 
} 
server{ 
    listen 80; 
    server_name 151net; 
    location / { 
        proxy_pass        http://151net/; 
        proxy_set_header  Host            $host; 
        proxy_set_header  X-Real-IP        $remote_addr; 
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for; 
    } 
}

保存nginx.conf后重启nginx服务。

注:A服务器的80端口是用来绑定监听访问域名的端口,所以在 upstream中我们使用了8088端口,如果你想吧A服务器也用来做负载的一个服务器的话,下面还得加一个server块。

server {
        listen       8088;
        server_name  151net.com;
        location / {
            root   /www/tp5/public;
           index  index.php index.html index.htm;
        }
        location ~ \.php$ {
            root           /www/tp5/public;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

上面代码就是表明你将A服务的端口8088绑定到了www目录下的tp5项目中去了。到了A服务器到这里就结束了。

然后在B服务器正常对nginx.conf进行配置就好了。

B服务器的nginx.conf

server{ 
    listen 80; 
    server_name 151net.com;
    root /www/tp5/public 
    index index.php index.html;  
}

ok,现在重启一个B服务器的nginx服务,然后在本地服务器打开151net.com,多刷新两次,看看效果。大功告成。

除了上面这些简单的配置之外,顺便记录一下关于nginx负载均衡策略:

哈希法:根据获取客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。

实际配置:ip_hash

将ip_hash添加到upstream块的第一行即可。

轮询法:将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。

就是开始默认的方式。

加权随机法:与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是,它是按照权重随机请求后端服务器,而非顺序。

实际配置:weight=2

将weight=2放在ip地址之后(server 192.168.0.151:80  weight=2;)

weight后面的数值代表权重,数值越大,表示权重越高。

 

好了。今天的分享就是这样子了,后面我会找时间再写一下负载均衡时候关于session的相关问题。

如果你遇到问题的话,可以给我留言哈,能解决的肯定不会推辞的!哈哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值