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,如需转载请自行联系原作者

目录
相关文章
|
9月前
|
API Kotlin
动态URL构建与HTTP请求的Kotlin实现
动态URL构建与HTTP请求的Kotlin实现
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
url重写重定向所有http网址到https网址
url重写重定向所有http网址到https网址
183 4
|
安全 Java 程序员
【HTTP】认识 URL 和 URL encode
【HTTP】认识 URL 和 URL encode
226 0
|
Java Spring
成功解决Initialization failed for ‘https://start.spring.io‘ Please check URL, network and proxy settings
这篇文章提供了解决Spring Initializr网站初始化失败问题的方法,包括检查URL、网络和代理设置。
成功解决Initialization failed for ‘https://start.spring.io‘ Please check URL, network and proxy settings
|
iOS开发 MacOS Python
【Mac 系统】解决已有清华镜像但出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url
在尝试使用清华镜像创建conda环境时遇到下载超时问题,通过删除原有镜像并添加针对Mac OS的清华镜像解决了该问题。
572 3
|
域名解析 存储 缓存
HTTP请求流程概览:浏览器构建请求行含方法、URL和版本;检查缓存;解析IP与端口
【6月更文挑战第23天】 HTTP请求流程概览:浏览器构建请求行含方法、URL和版本;检查缓存;解析IP与端口;TCP连接(HTTP/1.1可能需排队);三次握手;发送请求头与体;服务器处理并返回响应;TCP连接可能关闭或保持;浏览器接收并显示响应,更新缓存。HTTP版本间有差异。
373 5
|
JavaScript
【干货】js判断url是否是合法http/https
【干货】js判断url是否是合法http/https
|
XML 数据格式
蓝易云 - URI和URL和URN区别
总的来说,URI是一个广义的概念,包括URL和URN。URL提供了资源的位置信息,URN提供了资源的唯一名称。
212 2
|
Java Android开发 UED
安卓scheme_url调端:如果手机上多个app都注册了 http或者https 的 intent。 调端的时候,调起哪个app呢?
当多个Android应用注册了相同的URL Scheme(如http或https)时,系统会在尝试打开这类链接时展示一个选择对话框,让用户挑选偏好应用。若用户选择“始终”使用某个应用,则后续相同链接将直接由该应用处理,无需再次选择。本文以App A与App B为例,展示了如何在`AndroidManifest.xml`中配置对http与https的支持,并提供了从其他应用发起调用的示例代码。此外,还讨论了如何在系统设置中管理这些默认应用选择,以及建议开发者为避免冲突应注册更独特的Scheme。

热门文章

最新文章