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。
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机器后,性能提升效果显著。
![]()