Forum Discussion
Thanadon_Wattan
Nimbostratus
Feb 23, 2005Is it possible to use F5 as proxy/reverse proxy server?
I try to config F5 as proxy/reverse proxy by i-Rule.
is it possible?
I use data group for mapping request uri to internal server like this
{http://www.host1.com/path1/ http://10.10.0.15:83/}
and matching 1st field to HTTP::host and path
if it matches, I write 'node 2nd_field' to send the request to specific server (for reverse proxy function)
and if I have many lines of mapping, this may degrade the performance of F5?
and should I use F5 as reverse proxy?
coz I need the High Availability proxy server and don't want to pay for 2 servers and a pair of F5 to make it. so I choose to add proxy function to F5 instead.
Thank you in advance.
6 Replies
- Brian_Gupta_115
Nimbostratus
Basically a load balancer is a reverse proxy. Please see the following thread on URI parsing.
http://devcentral.f5.com/default.aspx?tabid=28&view=topic&forumid=5&postid=1635
With your URL, you will want to use
as your condition.ends_with "http://10.10.0.15:83/
-Brian - Brian_Gupta_115
Nimbostratus
Also see this thread: http://devcentral.f5.com/default.aspx?tabid=28&forumid=5&postid=1514&view=topic on constructing a uri.
Let me know if you need help.
-Brian - Thanadon_Wattan
Nimbostratus
I need some help. I'm new in i-Rule configuration and tcl script.
I have 2 external data groups : host_map and crp_map
in host_map have this content:-
"crp.domainname.com crp_map"
and in crp_map have this content :-
"/ /index.jsp CRP_Pool"
First I want to map HTTP::host to crp.domainname.com if it equals
I want to use i-Rule to check in another datagroup name "crp_map" that writen after the host like this
set loop 0
set max [llength $::host_map]
while {$loop < $max} {
set tmpstr [lindex $::host_map $loop]
scan "%s%s" $tmpstr host data
if {[HTTP::host] == $host} {
<<>>
I try to set like :
$::$datagroup
$"::$datagroup"
$::{$datagroup}
and many ways. but it didn't work.
anyone can help me? or know another way to refer to datagroup than $::
thank you. - drteeth_127330Historic F5 AccountI am not entirely sure what you are trying to do. But you seem to be using TCL lists and I think you are trying to perform double variable expansion. Perhaps this example will help:
% set foo { 1 2 3 4 } 1 2 3 4 % puts [lindex $foo 3] 4 % set bar foo foo % puts [lindex [subst $$bar] 3] 4
You also might consider using the foreach command to iterate over all the elements of the list instead of the while command. - Thanadon_Wattan
Nimbostratus
thank you for quick answer.
I think your answer is work. but I have another problem when I write like you comment. May you help me again?
set loopidx1 0
set maxloop1 [llength $::host_map]
log $maxloop1
while { $loopidx1 < $maxloop1 } {
set tmpstr1 [lindex $::host_map $loopidx1]
scan $tmpstr1 "%s%s" hosturl datagroup
if { ($request_host == $hosturl) } {
set loopidx2 0
set datagroup ::$datagroup
log [subst $$datagroup]
log [lindex [subst $$datagroup] end]
and when I try to connect to server it errors like this;
Feb 25 16:02:10 tmm tmm[11654]: 01220002:6: Rule CRP_Forward_rule : 4
Feb 25 16:02:10 tmm tmm[11654]: 01220002:6: Rule CRP_Forward_rule : {/ /reg/index.jsp10 Exist_revprox} {/wap/ /wap/ Mobile_life}
Feb 25 16:02:10 tmm tmm[11654]: 01220001:3: TCL error: Rule CRP_Forward_rule - list element in braces followed by "" instead of space while executing "lindex [subst $$datagroup] end"
the error happend same as previous question I post here.
do you have any comment? what should I do?
thank you again. - unRuleY_95363Historic F5 AccountYou are very close. Try this:
set group ::datagroup log [subst $$group] log [lindex [subst $$group] end]
You had an extra $ in the variable of the datagroup.
I would also suggest you simply modify your host_map to contain the :: for the group name so you don't have to add the extra variable set command.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects