1

因为公司有这个需求,故而简单使用vagrant在本地实践一下,但最好使用docker去部署,以后再写其他方式

反向代理概念

反向代理(Reverse Proxy)方式是指以代理服务器来接受客户端连接请求,然后将请求转发给内部网络上的服务器,并将从服务器得到的结果放回客户端,此时代理服务器对外就表现为一个服务器。

负载均衡

既然是负载均衡,那为什么要说反向代理呢,反向代理服务器管理一组服务器,可以根据对应的负载均衡算法将不同的请求转发到不同的服务器上,服务器处理完成的响应也通过代理服务器返回给用户。

负载均衡配置

nginx upstream目前支持5种调度算法,下面进行解释,其中后面两种需要第三方插件

1.轮询,这也是默认的。每个请求按照时间顺序逐一分配到不同的后端服务器。如果后端某台服务器挂掉了,故障系统可以自动剔除。使用户不受影响

 upstream back{

  server 192.168.30.11;
  server 192.168.30.12;
  server 192.168.30.10;

}

2.指定权重。指定轮询几率。weight和访问比例成正比。用于后端服务器性能不均的情况。

 upstream back{
   server 192.168.30.11 weight=10;
   server 192.168.30.11 weight=20;

} 

3.ip_hash.每个请求按访问ip的hash 结果分配。这样来自同一个ip的访客就固定访问一个后端服务器,有效的解决session共享问题.

  upstream back{
     ip_hash;
     server 192.168.30.11;
     server 192.168.30.12;

  }

后面还有两种,没有试过,就不写了。

实践代码

既然是负载均衡,肯定是多台服务器,我使用了192.168.30.11,192.168.30.10,192.168.30.12

 在 192.168.30.10

    upstream webhost{
#       ip_hash;

       server 192.168.33.11;
       server 192.168.33.12;


    }


    server {
        listen       80;
        server_name  localhost;
        root         /usr/share/nginx/html;

        location / {
         index index.html index.htm;
         proxy_pass http://webhost;
         proxy_redirect off;
         proxy_set_header  X-Real-IP $remote_addr;
         proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header  Host $host;



        }

其他两台服务器可以使用nginx,默认配置,访问192.168.33.10

这样就看到效果了

参考文章:https://segmentfault.com/a/11...
https://lufficc.com/blog/conf...


soledad
888 声望35 粉丝

我们努力的付出想换来的是什么,我只想让自己过得快乐点