最近配置nginx,在轮询策略中有一个session_sticky的session绑定配置,这个和ip_hash有什么区别了,还是说是同一种东西,只是ip绑定的实现方式不同,而结果一样了。
1条回答
关注 不知道你这个问题是否已经解决, 如果还没有解决的话:- 这篇文章:解决 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
- 准备一个upstream的虚拟域名,保管后端服务器的详细信息
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥15 oracle集群安装出bug
- ¥15 关于#python#的问题:自动化测试
- ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
- ¥15 教务系统账号被盗号如何追溯设备
- ¥20 delta降尺度方法,未来数据怎么降尺度
- ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
- ¥15 再不同版本的系统上,TCP传输速度不一致
- ¥15 高德地图点聚合中Marker的位置无法实时更新
- ¥15 DIFY API Endpoint 问题。
- ¥20 sub地址DHCP问题