Nginx实现简单的负载均衡

1、准备三台测试主机:

192.168.74.201 nginx+php 主 centos7.3 64位
192.168.74.202 nginx+php 副 centos7.3 64位
192.168.74.203 nginx+php 副 centos7.3 64位
 

2、全部安装同一版本nginx。

https://nginx.org/download/ 安装nginx 192.168.74.201
 

3、centos7中配置nginx

yum -y install gcc pcre-devel zlib-devel openssl openssl-devel 先安装必须需要的库 国内请切换到阿里云镜像配置
登录到centos root用户下 /root
cd ~
mkdir download
cd download
解压nginx tar -zxvf nginx-1.9.9.tar.gz
mv ./nginx-1.9.9 /usr/local/nginx
cd nginx
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf  
(nginx 指定配置文件启动 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf)
make(此步有问题的话 需要执行 配置指定文件)
make install

看到以上问题,没有出现 error等字眼,则是make install成功。

测试是否安装成功
# cd到刚才配置的安装目录/usr/loca/nginx/
./sbin/nginx -t 是否报错,无报错
再到进入到 cd sbin
./nginx 启动 nginx
 
小知识:nginx平滑重启
如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx 发送信号,平滑重启。
平滑重启命令:
kill -HUP 住进称号或进程号文件路径
或者使用
/usr/local/nginx/sbin/nginx -s reload
 
访问ip 是否能够打开nginx的域名 不然则关闭防火墙,其他打开防火墙端口的方式在linux 7中可以查到
systemctl stop firewalld (负载均衡的辅机需要防火墙把对应的端口打开访问权限)
 
依次配置三台机器
192.168.74.201 主 192.168.74.202 辅 192.168.74.203 辅
依次访问ip都能够正常看到nginx的欢迎页面,则表示配置成功。
 

4、开始配置负载均衡

配置虚拟域名指向本地 在hosts文件修改添加:192.168.74.201  t.load.com 推荐使用switchhosts工具
 
 
在三台机器中,都需要去创建 对应目录的内容 html内容自定义 home/www/test/index.html
201 home/www/test/index.html html的内容,假设为 here is host 201
202 home/www/test/index.html html的内容,假设为 here is host 202
203 home/www/test/index.html html的内容,假设为 here is host 203
 
在 201主机器中:使用vim修改nginx.conf的配置:
修改 http中的 

server {

  listen 8080;

  server_name load.com;

  index index.html;

  root /home/www/test;

}

注释:使用8080指向访问自己,80端口需要用来绑定域名。

新增:# 负载均衡模块

upstream  t.load.com  {  

  # ip_hash; //这里使用的是 ip_hash 可以解决session 不一致的问题 也可以用普通方式 轮询,当启用ip_hash时 就不需要权重 weight 属性了 轮询才需要

  server 192.168.74.202:80 weight=2;

  server 192.168.74.203:80 weight=2;

  server 127.0.0.1:8080 weight=1;

}

新增:

server {

  listen 8080;

  server_name t.load.com;

  location / {

    proxy_pass http://t.load.com;

    #proxy_set_header Host $host;

    #proxy_set_header X-Real-IP $remotr_addr;

    #proxy_set_header X-Forwarde-For $proxy_add_x_forwarded_for;}

}

修改完成关闭  /usr/local/nginx/sbin/nginx -s reload 平滑重启不报错,访问 t.load.com能看到 here is  host 201 则配置成功

在202 203两台机器中,修改nginx.conf文件

server {

  listen 80;

  server_name t.load.com;

  root /home/www/test;

  location / {

    index index.html;

  }

}

修改完成关闭  /usr/local/nginx/sbin/nginx -s reload 平滑重启不报错 就ok了。

在浏览器中访问  t.load.com 如果看到 201 202 203的变动,说明配置成功了。

需要注意的是:三台主机为了测试关闭了防火墙,在配置完201之后,可以使用虚拟机工具的复制功能复制成202 203,这样可以节省很多时间。如果想要多熟练的话,可以多配置几次。

5、负载均衡测试

2021 202 203配置都为 1c核 1.5g内存

在201一台主机开启下,使用t.load.com访问,apache ab工具 ab -c 100 -n 100 http://t.load.com测试

开启 201 202 203机器后,性能提升效果显著。

posted @ 2020-11-13 17:18  丶静秋枫  阅读(70)  评论(0)    收藏  举报