开始的准备工作:
1:准备两台服务器。这里说明下,本应该使用三台的服务器,因资源有限就拿两台服务器当成三台来用。基本的模型就是一台服务器安装Apache,另一台安装Nginx和Apache。这样相当于负载均衡服务器上也有一台web服务器。这样的处理是更好的利用有限的资源达到最终的效果。
2:下载Linux版本的Nginx 当前我用的是1.6.3.
上图就是两天服务器了,123开头的服务器用来做负载均衡服务器且同时部署一台Apache服务器,182开头的服务器也作为Apache web服务器。
由于两台的服务器配置一样,所以作为例子就只安装 配置 123这台服务器 包括安装Nginx、Apache 及配置。
这里安装Apache,很简单一条命令搞定。接下来需要配置下Apache的端口。默认使用的是80端口。但是当前因为后面需要安装Nginx,它默认也是使用80端口,所以这里就把Apache端口改为8080.
配置好端口后,可以检查下Apache的状态 然后启动Apache。
curl 123.206.46.39:8080请求下 控制台就会打印出测试页面内容了。 到这一步 安装 配置Apache已经完成了
补充一点,未了看的更直观 把Apache的测试页面变为其当前的服务器IP地址
命令
echo 123.206.46.39 >/var/www/html/index.html
1:接下来安装Nginx,在安装Nginx之前 先安装个lrzsz软件 方便上传文件。安装完lrzsz后 上传Nginx安装包
对上传的Nginx安装包进行解压,然后开始安装, 在安装之前需要在安装下pcre 和 openssl
具体命令:
yum install pcre-devel -y
yum install openssl-devel -y
安装niginx
./configure --user=nginx --group=nginx --prefix=/appliaction/nginx-1.6.3 --with-http_stub_status_module --with-http_ssl_module
在安装过程 爆出了一个错误,这个错误之的是系统没有安装gcc ,安装上即可。
命令 yum install gcc -y
安装完后呢就能顺利的安装Nginx啦
然后编译
make
make install
全部做完后
ln -s /appliaction/nginx-1.6.3/ /appliaction/nginx
然后就可以启动Nginx
/appliaction/nginx/sbin/nginx
停止命令
/appliaction/nginx/sbin/nginx -s stop
这里获取nginx这个用户失败,所以这里添加一个nginx用户。
useradd nginx -s /sbin/nologin -M
这样在重新起下就ok了
到这一步Nginx 就安装好了。
接下来就是 负载均衡的配置了。
配置nginx的负载涉及一个模块 upstream 可以查看官网的文档
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:8080;
server unix:/tmp/backend3;
server backup1.example.com:8080 backup;
server backup2.example.com:8080 backup;
}
server {
location / {
proxy_pass http://backend;
}
}
改造后的配置为:
upstream yaffa {
server 182.61.15.157:80 weight=5;
server 123.206.46.39:8080 weight=5;
server 182.61.15.159:80 weight=5 backup;
}
server {
listen 80;
server_name www.yaffa.org;
location / {
root html;
index index.html index.htm;
proxy_pass http://yaffa;
}
}
配置好负载均衡后:
进行语法检查 如果成功 则刷新配置文件使其生效
命令
../sbin/nginx -t
../sbin/nginx -s reload
可以从最后的控制台的输出可以看出 负载均衡已经生效 每次强求返回的ip地址不一样,
说明下182.61.15.157 之前说的是另一台Apache服务器。
由于123 这台服务器不仅仅只安装部署了nginx 还有一台Apache服务器 所以在访问123这台服务器时 返回的结果可以看出 123 和182 这两台服务器相应的切换。
当然这种方式为轮询的方式,也可以通过设置nginx.conf 配置每台服务器的权重值 来达到某台服务器被分配的请求更多。
这里就不细说了。
还要nginx还支持ip_hash 的策略 及同一个ip 访问的都是同一台服务器,这样的好处是 回话信息无需共享 同时在做分布式缓存时也可以考虑ip_hash的策略。
好了今天就到这了 下一次分享下keepalived
123.206.46.39
这个是公网ip 浏览器可以直接请求 拿去玩吧。