URI,URL和HTTP::uri

简介:
今天接到应用部门一个需求:
针对他们部门的某个URL:  [url]http://www.abc.com/[/url][url]https://www.abc.com/[/url]访问,需要直接跳到某一台主机上,而不希望在这个pool成员中轮询。而且正常的访问这个URL,需要跳转到 [url]https://www.abc.com/[/url],但是一些程序针对这个域名的接口调用则不需要跳转,一般的接口调用的URL最后为“.do”。
这个需求比较奇怪,考虑到一般人访问这个域名都是直接访问[url]www.abc.com[/url] 其实就是 [url]http://www.abc.com/[/url],而程序接口调用则类似为 [url]http://www.abc.com/[/url]*****.do。这就可以区分开来,在F5的定义中HTTP::uri表示HTTP::host后面的部分。

HTTP::uri

  • Returns the URI of the request. It does not include the protocol (http or https) or hostname, just the path, starting with the slash after the hostname.
                           ------摘自 [url]http://devcentral.f5.com/wiki/default.aspx/iRules/HTTP__uri.html[/url]
 
所以在LTM上面写下如此irule:
[root@LB-1A-BIG6400:Active] root #b rule http_https_host1 list
rule http_https_host1 {
when HTTP_REQUEST {
if { [HTTP::uri] equals "/" } {
HTTP::redirect  https://[HTTP::host][HTTP::uri]
}
elseif { [HTTP::uri] contains "host1" } {
HTTP::redirect  https://[HTTP::host][HTTP::uri]
}
}
[root@LB-1A-BIG6400:Active] root # b rule redirect_host1 list
rule redirect_host1 {
when HTTP_REQUEST {
if { [HTTP::uri] ends_with "host1" } {
use node a.b.c.d 80
}
}
}
然后将http_https_host1用在80的virtual server上,而将redirect_host1用在443的virtual server上就ok了。
}









本文转自 chris_lee 51CTO博客,原文链接:http://blog.51cto.com/ipneter/75492,如需转载请自行联系原作者

目录
相关文章
|
29天前
|
iOS开发 MacOS Python
【Mac 系统】解决已有清华镜像但出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url
在尝试使用清华镜像创建conda环境时遇到下载超时问题,通过删除原有镜像并添加针对Mac OS的清华镜像解决了该问题。
52 3
|
29天前
|
Java Android开发 UED
安卓scheme_url调端:如果手机上多个app都注册了 http或者https 的 intent。 调端的时候,调起哪个app呢?
当多个Android应用注册了相同的URL Scheme(如http或https)时,系统会在尝试打开这类链接时展示一个选择对话框,让用户挑选偏好应用。若用户选择“始终”使用某个应用,则后续相同链接将直接由该应用处理,无需再次选择。本文以App A与App B为例,展示了如何在`AndroidManifest.xml`中配置对http与https的支持,并提供了从其他应用发起调用的示例代码。此外,还讨论了如何在系统设置中管理这些默认应用选择,以及建议开发者为避免冲突应注册更独特的Scheme。
|
1月前
|
存储 Linux Docker
Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo
CentOS 安装Docker时,将 Docker 官方的 YUM 存储库添加到 CentOS 系统中出现错误。
240 0
|
3月前
|
域名解析 存储 缓存
HTTP请求流程概览:浏览器构建请求行含方法、URL和版本;检查缓存;解析IP与端口
【6月更文挑战第23天】 HTTP请求流程概览:浏览器构建请求行含方法、URL和版本;检查缓存;解析IP与端口;TCP连接(HTTP/1.1可能需排队);三次握手;发送请求头与体;服务器处理并返回响应;TCP连接可能关闭或保持;浏览器接收并显示响应,更新缓存。HTTP版本间有差异。
52 5
|
3月前
|
JavaScript
【干货】js判断url是否是合法http/https
【干货】js判断url是否是合法http/https
200 1
|
3月前
|
XML 数据格式
蓝易云 - URI和URL和URN区别
总的来说,URI是一个广义的概念,包括URL和URN。URL提供了资源的位置信息,URN提供了资源的唯一名称。
29 2
|
4月前
|
数据采集 网络协议
WWW(URL,HTTP,HTML)
WWW(URL,HTTP,HTML)
61 1
|
4月前
|
网络协议 应用服务中间件 nginx
nginx 302 301 设置 url 转跳 nginx 资源重定向 nginx tcp 和 http 转发
nginx 代理后端网站,和 网站资源目录重定向到其他连接地址
169 3
|
3月前
|
Windows
iis配置http重定向302转发get请求并去掉最后的斜杠/ iis重定向 iis去除url最后的斜杠 iis重定向链接斜杠(已解决)
iis配置http重定向302转发get请求并去掉最后的斜杠/ iis重定向 iis去除url最后的斜杠 iis重定向链接斜杠(已解决)
69 0
|
4月前
|
网络协议 网络安全 API
Qt 网络编程之美:探索 URL、HTTP、服务发现与请求响应
Qt 网络编程之美:探索 URL、HTTP、服务发现与请求响应
462 1
下一篇
云函数