10分钟搭建Nginx负载均衡
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法。
安装Nginx
Centos7 安装Nginx
第一种方式:通过yum安装
直接通过 yum install nginx 肯定是不行的,因为yum没有nginx,所以首先把 nginx 的源加入 yum 中。
运行下面的命令:
1.将nginx放到yum repro库中
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
这一段URL地址的拼接是有一定规则的,具体规则在作者的官网有详细介绍,针对不同操作系统的不同版本,传送门点此:Pre-Built Packages for Stable version
2.查看Nginx信息(验证上一步是否成功,可选)
yum info nginx
3.使用yum安装ngnix
yum install nginx
效果如下:
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
- base: mirrors.usc.edu
- extras: mirror.raystedman.net
- updates: mirror.metrocast.net
正在解决依赖关系
--> 正在检查事务
---> 软件包 nginx.x86_64.1.1.10.1-1.el7.ngx 将被 安装
······
······
正在安装 : 1:nginx-1.10.1-1.el7.ngx.x86_64
Thanks for using nginx!
Please find the official documentation for nginx here: - http://nginx.org/en/docs/
Commercial subscriptions for nginx are available on:
-
http://nginx.com/products/
验证中 : 1:nginx-1.10.1-1.el7.ngx.x86_64 1/1
已安装:
nginx.x86_64 1:1.10.1-1.el7.ngx
完毕!
4.启动nginx
针对CentOS7,启动命令应该使用
systemctl start nginx.service
5.Nginx的常用操作
启动:
service nginx start(centos7是systemctl start nginx.service )
重启:
nginx –s reload
停止:
nginx –s stop
测试配置文件是否正常:
nginx –t
配置负载均衡
测试环境
A服务器IP :192.168.18.131 (主)
B服务器IP :192.168.18.132
C服务器IP :192.168.18.133
三台服务器,通过本机的VMware虚拟机进行创建,安装的系统均为Centos 7,Nginx版本一致(如上文)
部署思路
A服务器做为主服务器,域名直接解析到A服务器上,由A服务器负载均衡到B服务器与C服务器上。
nginx.conf设置
A服务器nginx.conf设置
upstream server1 {
server 192.168.18.132:80 weight=1;
server 192.168.18.133:80 weight=1;
}
server {
listen 80;
server_name server1;
location / {
proxy_pass http://server1;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
为了突出显示负载服务器切换的效果,我们将两个服务器的weight值都设成一样的,这样在访问时,就能明显看出效果
保存重启 nginx -s reload
分别配置B、C服务器nginx.conf设置
server {
#server_name的名称可以根据域名或者ip地址进行命名,这里仅做演示
listen 80;
server_name hadoop1;
#这里是默认Nginx的配置
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
保存重启 nginx -s reload
当然啦,为了演示时,明确区分我们的负载服务器,我们将/usr/share/nginx/html路径下的index.html页面,加入了比较明确的特征,B服务器的改动如下:
<h1>Welcome to nginx2!</h1>
C服务器改动如下:
<h1>Welcome to nginx3!</h1>
实测
访问http://192.168.18.131 刷新界面 可以看到界面内容为Nginx2或者Nginx3
20170616_103323.gif结论:
访问http://192.168.18.131 结果,刷新会发现所有的请求均分别被主服务器(192.168.18.131)分配到B服务器(192.168.18.132)与C服务器(192.168.18.133)上,实现了负载均衡效果。