ayawar 2015-12-14 11:52 采纳率: 0%
浏览 3637

nginx ip_hash和session_sticky

最近配置nginx,在轮询策略中有一个session_sticky的session绑定配置,这个和ip_hash有什么区别了,还是说是同一种东西,只是ip绑定的实现方式不同,而结果一样了。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-25 19:18
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 这篇文章:解决 nginx 反向代理时 session 丢失 无效的问题 也许能够解决你的问题,你可以看下
    • 除此之外, 这篇博客: nginx负载均衡、负载均衡策略/方式(轮询、权重、ip_hash)session共享问题中的 2.1.1轮询 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      依次按照顺序访问后端的每一个服务器,按照这个计算,相当于平均分配请求给所有集群节点--物理均衡。

      • 准备一个upstream的虚拟域名,保管后端服务器的详细信息
        //定义后台服务器的信息,list列表
        upstream ouservers {
             server 127.0.0.1:8093;
             server 127.0.0.1:8093;
             server 127.0.0.1:8293;
        }

        upstream的配置,会在nginx启动时加载成为一个内存的list对象

             元素有3个分别是8093 8193 8293,负载均衡的计算都是通过这个list完成的

      • 在server中使用proxy_pass指向这个新创建的upstream名称ouservers,如果找到该proxy_pass,nginx会进行替换。
      //案例   www.pp.com 访问nginx
      //让nginx处理这个请求
      server {
          listen 80;
          server_name www.pp.com;
          //正则表达式,匹配当前所有静态资源路径
          location / {
          root static;
          //默认使用首页,如果使用/ 在访问时,可以添加默认首页
          index index.html;
          }
          location /user {
          //实现转发功能,请求转发给后端8093 root是静态数据,proxy_pass动态数据
          proxy_pass http://ouservers;
          }
          location /order {
          //实现转发功能,请求转发给后端8093 root是静态数据,proxy_pass动态数据
          proxy_pass http://ouservers;
          }
          location /hello {
          proxy_pass http://ouservers;
          }
      }
      • 测试轮询

      保存nginx.conf文件,重新加载/重新启动,即在nginx家目录总执行nginx -s reload

      访问:http://www.pp.com/hello?name=王翠花

      • 流程分析

      请求地址:http://www.pp.com/hello

      |进入nginx

      |找到server

      |匹配location /hello

      |proxy_pass ouservers

      |找到upstream中叫做ouservers的list列表

      |从中计算轮询算法,拿到一个具体的服务器 127.0.0.1:8093

      |将proxy_pass ouservers替换掉

      响应地址:http://localhost:8093(8193/8293)/hello


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥15 Jenkins+k8s部署slave节点offline
  • ¥15 微信小游戏反编译后,出现找不到分包的情况
  • ¥15 如何实现从tello无人机上获取实时传输的视频流,然后将获取的视频通过yolov5进行检测
  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题