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            //使用该命令多次访问查看效果