用nginx实现网站代理功能:
一台服务器的能力是有限的,如果客户访问量比较大,可以利用nginx的代理功能组建集群,集群中的服务器越多集群整体性能就越强。
准备工作:
准备两台集群主机,一台IP为2.100,另一台为2.200;一台代理服务器,有两个网卡,网卡一2.5,网卡二4.5
实验:集群实现httpd服务的负载均衡
在http的大括号中写入配置:
upstream web { //创建nginx集群,名称是web
server 192.168.2.100:80; //这里是集群中的服务器ip与端口
server 192.168.2.200:80; //第二台集群主机
}
proxy_pass http://web; //调用web集群
sbin/nginx -s reload //重加载nginx服务
使用火狐访问192.168.2.5 不断刷新,看到的页面内容是web1与web2之间切换,或者使用curl 192.168.2.5
集群优化:
1,任务量的分配,性能较强的服务器可以多分配工作量
server 192.168.2.100:80 weight=2; //权重,值越大,工作量越大
2,健康检查功能
server 192.168.2. 100:80 max_fails=2 fail_timeout=30; //检测2次如
果失败,则认为集群中的服务器故障,认为集群中的服务器故障之
后等待30秒才会再次链接
3,集群主机需要维护时
server 192.168.2.100:80 down; 加down标记,使集群服务器暂时不参与集群的任务轮询
4,相同客户机访问相同服务器
upstream web {
ip_hash //相同客户机访问相同服务器,让一个客户机访问集群时锁定一个后台服务器,避免重复登陆的问题
server 192.168.2.100:80;
server 192.168.2.200:80;
}
实验二:使用nginx实现其他业务的集群
通常情况下nginx是搭建网站的工具,还可以组建网站集群,但如果后端的集群服务器跑的不是网站业务,就可以利用–with-stream模块创建非网站业务的集群。
1.在proxy主机:停止nginx服务,并删除nginx
2.回到家目录下的lnmp_soft的nginx目录重新编译安装nginx,将上述两个模块都添加上,其中--with-stream是四层代理模块可以让nginx组建其他业务(非web)的集群,另外一个模块可以查看网站后台数据(后面的实验需要)。
3 ./configure --with-stream --with-http_stub_status_module
make
make install
4.在家目录下将/.ssh/known_hosts 文件删除
5.修改nginx.conf配置文件
打开nginx主配置文件,在16行左右(http上面),即http模块外,添加以下内容
16 stream { //创建新业务
17 upstream backend { //创建名叫backend的集群
18 server 192.168.2.100:22; //集群中的主机使用22端口对外提供服务
19 server 192.168.2.200:22;
20 }
21 server {
22 listen 12345; //监听端口号
23 proxy_pass backend; //调用集群
24 }
25 }
6.测试
ssh 192.168.2.5 -p 12345 //使用12345端口号连接代理服务器。此处使用自己连接自己测试,如果使用client主机就远程连接192.168.4.5