nginx反向代理
优点:负载均衡,预防单点故障。
实验环境:
首先搭建两个web网站,为看效果,故设置内容不一样。
设置调度器:
1.修改配置文件
upstream webserver {
server 192.168.2.100:80;
server 192.168.2.200:80
}
.. ..
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://webserver; 【收到请求后转发给上面定义的集群】
root html;
index home.php index.html index.htm;
}
upstream 定义集群。
webserver 为集群命名。
2.刷新nginx服务
# /usr/local/nginx/sbin/nginx -s reload
3.客户端进行测试
curl http://192.168.4.5
二
因,调度默认轮询算法,故可通过设置属性进行合理分配。
配置服务器集群属性
1.设置失败次数,超时时间,权重
http {
.. ..
upstream webserver {
server 192.168.2.100 weight=1 max_fails=1 fail_timeout=10;
server 192.168.2.200 weight=2 max_fails=2 fail_timeout=10;
}
//weight设置服务器权重值
//max_fails设置最大失败次数
//fail_timeout设置失败超时时间,单位为秒
.. ..
2.重启nginx服务
# /usr/local/nginx/sbin/nginx -s reload
3.关闭一台后端服务器(web1)
# systemctl stop httpd
4.客户端使用浏览器访问代理服务器测试
# curl http://192.168.4.5 //使用该命令多次访问查看效果
5.再次启动后端服务器的httpd(web1)
# systemctl start httpd
6.客户端再次使用浏览器访问代理服务器测试
# curl http://192.168.4.5 //使用该命令多次访问查看效果
特殊情况:【若机器维修时间过长,可设置不再询问该机器:可用 # 或 down 】
server 192.168.2.100 weight=1 max_fails=1 fail_timeout=10 down;
# server 192.168.2.100 weight=1 max_fails=1 fail_timeout=10 ;
三
1.设置相同客户端访问相同web服务器:【避免客户在当前页面作业时刷新,页面返回不一致】
http {
.. ..
upstream webserver {
ip_hash; 【设置记录ip】
server 192.168.2.100 weight=1 max_fails=1 fail_timeout=10;
server 192.168.2.200 weight=2 max_fails=2 fail_timeout=10;
}
2.重启nginx服务
# /usr/local/nginx/sbin/nginx -s reload
3.测试
# curl http://192.168.4.5 //使用该命令多次访问查看效果