Nginx+IIS实现负载均衡(2)

location / {
            root  html;
            index  index.aspx index.html index.htm; #修改主页为index.aspx
    #其中jq_one 对应着upstream设置的集群名称
    proxy_pass        ; 
    #设置主机头和客户端真实地址,以便服务器获取客户端真实IP
    proxy_set_header  Host            $host;
    proxy_set_header  X-Real-IP        $remote_addr;
    proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
 }

修改完成配置文件以后记得重启nginx服务,最终完整配置文件信息如下

Nginx+IIS实现负载均衡

3.运行结果

  访问:8083/index.aspx ,多访问几次,着重关注标红部分。

Nginx+IIS实现负载均衡

Nginx+IIS实现负载均衡

可以看到,我们的请求被分发到了8082站点和9000站点,并且第一次是8082站点第二次9000。出现这样的结果证明我们负载均衡搭建成功了。 尝试关闭其中的9000站点,然后刷新页面发现输出的http端口一直是8082,也就是说其中一个站点挂了,只要还有一个站点是好的,我们的还是可以服务。

问题分析

虽然我们搭建好了负载均衡站点,但是还存在以下问题。

  1.如果站点使用了session,请求平均分配到两个站点,那么必然存在session共享问题,该如何解决?

使用数据库保存session信息

使用nginx将同一ip的请求分配到固定服务器,修改如下。ip_hash会计算ip对应hash值,然后分配到固定服务器

  upstream Jq_one{
    server 127.0.0.1:8082 ;
    server 127.0.0.1:9000 ;
    ip_hash;
  }

搭建一台Redis服务器,对session的读取都从该Redis服务器上读取。后面的文章将介绍分布式缓存Redis的使用

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ef5fc787404c0a0f95a1f13cb08969d8.html