问题标签 [irule]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
238 浏览

big-ip - BIG-IP 11.5.2 - PROCs - 通过引用或返回传递

Procs 是在 BIGIP-11.4.0 中引入的,我正在尝试访问作为对 proc 的引用传递或从 proc 返回的外部变量。至今没有成功。关于此功能的文档也没有太多。

https://devcentral.f5.com/wiki/irules.call.ashx

请参阅下面的示例代码。我将太多重复的代码移动到 procs 并遇到了这个问题。想法?任何解决方法?

通过引用传递

TCL 有一个名为 upvar 的关键字,Big IP 11.4.x 支持该关键字。这类似于使用按引用传递。但这似乎对我不起作用。可能是我错过了一些东西。在以下情况下,调用 proc 后 {test_var} 的值应为 10。相反,它仍然是 1。

过程

呼叫者

输出

问题 :-

A)有没有办法将变量 ${test_var} 作为调用者的引用传递给 proc,以便调用者可以使用 proc 中的操纵变量值?

或者

B)有没有办法将变量 ${test_var} 返回给调用者,以便调用者可以使用它?

0 投票
0 回答
367 浏览

cors - 总是返回 Access-Control-Allow-Credentials 有缺点吗?

一个奇怪的CORS问题......

我的example.com服务器中有代码,它为所有 POST 和 GET 请求返回 Access-Control-Allow-Origin 响应标头,其中传递了 Origin 请求标头,并且它的值是 example.com 子域(superman .example.combatman.example.com等)。

我现在需要能够通过 cookie 进行 AJAX 调用,因此如果请求包含 cookie,我需要能够返回Access-Control-Allow-Credentials响应标头。

如果我看到 Cookie 请求标头,我可以添加额外的检查以返回 Access-Control-Allow-Credentials 响应标头,但为简单起见,我想知道始终返回 Access-Control-Allow-Credentials是否有任何缺点来自我的子域的所有 GET/POST 请求的响应标头,其中指定了 Origin 请求标头。

这是我的代码(它是 Tcl iRule,FWIW):

我知道,如果我返回 Access-Control-Allow-Credentials 响应标头,我必须指定一个命名(非通用)Access-Control-Allow-Origin 标头(并且可能有 Vary 标头问题),但是否存在还有什么我需要注意的吗?

0 投票
1 回答
8241 浏览

f5 - http重定向和更改池

我的规则是;

这正如我们所期望的那样工作。我们在https://example.com上有一个虚拟服务器,它有一个池(称为 poolA,带有一个称为 nodeA 的节点)。

我们要做的是修改现有的 irule,以便它不仅进行重定向,而且更改池。我尝试了以下方法;

poolB 中的 NodeB 上有一个网络服务器,正在侦听正确的端口,并且有一个与方向 URL 匹配的网站。

如果我在 Chrome 中访问https://example.com/xxxx,我会收到以下错误;

错误太多重定向

0 投票
2 回答
1931 浏览

f5 - f5 LTM irule - 可以在 irule 中生成池名称吗

我需要为许多类似的环境设置配置。每个都有不同的主机名,遵循某种模式,例如 env1、env2 等。

我可以为每个环境使用一个池和一个带有 irule 的单个虚拟服务器,该 irule 根据主机名选择一个池。

我更喜欢做的是根据请求的主机名动态生成和选择池名称,而不是在 switch 语句中列出每个池。它更易于维护和自动处理新环境。

代码可能如下所示:

并且每个池名称都与主机名匹配。

这可能吗?或者有没有更好的方法?

编辑

我已经扩展了我的主机名池选择。我现在正在尝试包含端口号。新规则如下所示:

}

这是有效的,但我在日志中看到 no-such-pool 错误,因为端口 0 请求以某种方式进入池中。它似乎是第一个请求,然后是具有合法端口的请求。

是什么导致端口 0 请求?有什么解决方法吗?例如,我可以测试端口 0 并选择默认端口或忽略它吗?

再编辑一次

重建虚拟服务器,现在错误消失了。VS的重建只是重命名它。我很确定我重新创建了完全相同的设置。

0 投票
1 回答
603 浏览

f5 - 这些 F5 iRules 是什么意思?

我不了解 F5 并试图阅读这些规则。如果有人可以帮助我理解它们。

以下规则是读取 HTTP 请求并(定义变量 INTRSSN?)获取节点并将其保存在持久性表中。

此规则将读取 HTTP 请求并提取特定标记值并将其放入 INTRSSN 变量中。此变量将保存在持久性表中。

我不明白这个事件。

0 投票
1 回答
279 浏览

mime-types - 如何在 F5 中实现这些 mime 类型 - irules

ForceType application/vnd.openxmlformats–officedocument.presentationml.slideshow Header 设置 Content-Disposition 附件

0 投票
0 回答
334 浏览

powershell - 使用 iControl 将文件上传为 iFile

有没有办法更新现有 iFile 的内容?我没有看到任何更新内容的方法。因此,我开始考虑通过使用 iControl 将本地文件上传到 BigIP 来删除和创建文件。我知道有两个对象可以使用 - iFileFile,然后按顺序使用 iFile。

有人可以为此提供用法吗?以下是我开始的内容并得到以下错误。如果我在与 powershell 脚本相同的位置有一个名为 random_key_file1 的文件,那么 iFileFile.create() 的正确参数是什么?创建 iFileFile 对象后,如何在 iFile.create() 中使用相同的对象。

以下链接有文档但缺少使用示例:https://devcentral.f5.com/wiki/iControl.LocalLB__iFile__create.ashx https://devcentral.f5.com/wiki/iControl.LocalLB__iFileFile__create.ashx

感谢帮助。

错误

0 投票
1 回答
1847 浏览

cookies - F5 iRule 使用 HTTPOnly 和 Secure 但不包含 cookie name="cnlfsid" 来保护 Cookie

我们需要使用 HTTPOnly 和 Secure 来保护 Cookie,但不包含 cookie 名称 =“cnlfsid”

这是我的代码:

但它行不通。有人可以帮我解决它。

非常感谢

0 投票
1 回答
392 浏览

weblogic11g - F5根据ip_address:portnumber/servletname创建IRule

我对 F5-LTM 配置非常陌生。非常感谢与以下要求相关的任何帮助。

我的应用程序在 Weblogic-11g 服务器上运行在端口号:8001 的托管服务器上。现在随着我的用户数量增加,我在端口号:9001 处创建了另外一台托管服务器

以前我的所有请求都来自http://ip_address:8001/login.html 现在我仍然希望所有请求都来自相同但它们重定向到http://ip_address:8001/login.htmlhttp://ip_address :9001/login.html

注意:我还想通知在我的应用程序中我还有许多其他 servlet 也在运行,所以我希望基于http://ip_address:port_number/servlet的请求转发

任何知道我如何在 F5-LTM 中实现上述请求转发配置的人。

再次感谢。

0 投票
1 回答
13684 浏览

url-redirection - 如何使用 F5 iRules 和 URL 中的变量进行重定向

嗨,我是 F5 iRule 的新手。

我正在尝试将 https://website1.com/userid=1234重定向 到 https://website2.com/userid=1234

这样用户标识可能具有的任何值都将在重定向后被保留。

我在想 userid 值应该设置为一个变量。有人可以分享使用什么代码吗?谢谢!

所以https://website1.com/userid=8888应该去https://website2.com/userid=8888等等。