网站首页 > 精选教程 正文
"例如请求的url为http://www.a.com/{path_var1}/{path_var2}
path_var1和path_var2是两个path variable
如果现在只想根据path_var1来做路由,即path_var1相同的请求落在同一台服务器上,应当怎么配置呢?"
如上的问题,我们都知道nginx的负载均衡,可以支持很多hash方式,对于指定url中的内容进行hash ,接下来我用一个场景来模拟:
1. 场景描述
场景大概就是这样,当url请求过来时候,通过url中的一个特定数值,进行提取,然后进行hash
2. 配置
1、为了简单实现场景测试,我在nginx中,只作了简单的配置,如下:
server { listen 80; server_name defualt www.jesonc.com; location / { proxy_pass http://www_jesonc; index index.html index.htm; }}upstream www_jesonc { server 127.0.0.1:5000; server 127.0.0.1:5001; server 127.0.0.1:5002;}server { listen 5000; server_name defualt www.jesonc.com; location / { root /opt/app/code4; #random_index on; index index.html index.htm; }}server { listen 5001; server_name defualt www.jesonc.com; location / { root /opt/app/code5; index index.html index.htm; }}server { listen 5002; server_name defualt www.jesonc.com; location / { root /opt/app/code6; index index.html index.htm; }}
2、新建目录,建立index页面
[root@Jeson-at-imoocc conf.d]# mkdir /opt/app/code4/11231/2131/ -p [root@Jeson-at-imoocc conf.d]# mkdir /opt/app/code4/3123/5345/ -p [root@Jeson-at-imoocc conf.d]# mkdir /opt/app/code4/6666/5347/ -p [root@Jeson-at-imoocc conf.d]# cp /opt/app/code/jesonc.html /opt/app/code4/11231/2131/index.html [root@Jeson-at-imoocc conf.d]# cp /opt/app/code/jesonc.html /opt/app/code4/3123/5345/index.html [root@Jeson-at-imoocc conf.d]# cp /opt/app/code/jesonc.html /opt/app/code4/6666/5347/index.html//编辑index页面,使内容有区别 [root@Jeson-at-imoocc conf.d]# vim /opt/app/code4/3123/5345/index.html [root@Jeson-at-imoocc conf.d]# vim /opt/app/code4/6666/5347/index.html [root@Jeson-at-imoocc conf.d]# vim /opt/app/code4/3123/5345/index.html//拷贝目录 [root@Jeson-at-imoocc app]# cp -r code4 code5 [root@Jeson-at-imoocc app]# cp -r code4 code6//编辑index页面,使内容有区别vim /opt/app/code4/6666/5347/index.html vim /opt/app/code5/6666/5347/index.html vim /opt/app/code6/6666/5347/index.html
3. 自定义hash key的方式
这样,我们需要设置的就是,当用户访问http://www.jesonc.com/6666/5347/index.html
我们通过哈希url中的6666,固定访问一个server
设置,改动如下:
if ( $uri ~* "^\/([^\/]+)\/.*" ){ set $defurlkey $1; }upstream www_jesonc { hash $defurlkey; server 127.0.0.1:5000; server 127.0.0.1:5001; server 127.0.0.1:5002;}
4. 测试
1、在没有加入hash key之前,访问http://www.jesonc.com/6666/5347/
页面将,不断轮训展示不同信息。
2、设置完成hash key之后,访问:http://www.jesonc.com/6666/5347/
固定到一个信息页面上:
希望大家多多支持,小编致力推荐精品,共享给大家学习交流。欢迎大家随时留言回复,谢谢大家!
Ps:如果此文为您带来欢乐,那就关注小编吧。每天精品准时推送!
猜你喜欢
- 2024-10-10 vue-router的hash模式和history模式
- 2024-10-10 面试官:你对Redis缓存了解吗?面对这5道面试题是否有很多问号?
- 2024-10-10 K8s笔记(六):了解控制器——Deployment
- 2024-10-10 nginx服务器session共享常见解决办法
- 2024-10-10 面试官:Redis缓存了解吗?面对这11道题是否有很多问号?
- 2024-10-10 nginx sticky 实现基于cookie 的负载均衡
- 2024-10-10 Nginx负载均衡之ip hash与hash模块,弥补Round-Robin的缺陷
- 2024-10-10 Redis 选择hash还是string 存储数据?
- 2024-10-10 Nginx基本数据结构之队列(Queue),散列(Hash)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)