背景
最近在恶补一些常用工具的应用及底层实现原理
这篇博客是基于nginx的UpStream模块做的负载均衡例子,具体NginxUpstream模块的介绍,参照nginx中文文档-关于Nginx的UpStream介绍
场景设计
一切从简,所有的环境都在一台服务器上进行。
名称 | IP | 端口 | 备注 |
---|---|---|---|
web1 | 127.0.0.1 | 9001 | web副本1 |
web2 | 127.0.0.1 | 9002 | web副本2 |
nginx | 127.0.o0.1 | 80 | 代理服务 |
准备环境
- 下载nginx并编译
官网速度非常忙,直接找了个第三方网站
wget http://mirrors.sohu.com/nginx/nginx-1.14.0.tar.gz
tar -xvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
./configure --prefix=/root/nginx/nginx
由于我们当前要模拟三套nginx环境,故要执行三遍编译
./configure --prefix=/root/nginx/nginx
make & make install
./configure --prefix=/root/nginx/web1
make & make install
./configure --prefix=/root/nginx/web2
make & make install
- 修改web的配置
修改web1和web2的nginx.conf端口分别为9001,9002,并且将首页分别改成可区分的内容 - 修改代理的配置
......
upstream web{
server 127.0.0.1:9001 weight=1;
server 127.0.0.1:9002 weight=1;
}
server {
listen 80;
server_name 127.0.0.1;
location / {
proxy_pass http://web;
}
......
测试
通过访问http://xxxxx/ 来验证结果,会根据配置的负载均衡规则(这里是权重)会切换显示web1的内容和web2的内容。
进一步可通过测试工具来分别测试两种场景下的并发性能。