Forum Discussion

jonm_62062's avatar
jonm_62062
Icon for Nimbostratus rankNimbostratus
Jan 07, 2011

ProxyPass iRule, Version 8.2 usage

I'm trying to implement ProxyPass iRule, Version 8.2 so I can remove apache from a server . The apache code does nothing accept 'proxypass' to another app on the same server . Here is the proxy pass statement in the httpd.conf file

 

 

ProxyPass /LogToolDEV/ http://localhost:8080/

 

 

Currently the user connects to this app using a url like this

 

 

https://some.server.something/LogToolDEV

 

 

The bigip terminates the ssl and I currently have a simple irule that looks for the 'LogToolDEV' and changes the pool to 'test' (port 80) on which apache is listening .

 

This works fine.

 

 

So it seems as though I can bypass apache all together with the ProxyPass irule . I

 

have tried various combinations in the irule data group , here are 2

 

 

/LogToolDEV/ http://192.168.12.96:8080/ test8080

 

/LogToolDEV/ / test8080

 

 

the pool test8080 point to the server , port 8080

 

 

I have verified the existence of pool 'test8080' but irule debug shows

 

 

Jan 7 10:34:04 tmm tmm[1667]: Rule ProxyPasscnedev : some_virtualname, Host=some.server.something, URI=/LogToolDEV/: Found Rule, Client Host=some.server.something, Client Path=/LogToolDEV, Server Host=some.server.something, Server Path=

 

Jan 7 10:34:04 tmm tmm[1667]: 01220001:3: TCL error: ProxyPasscnedev - no such pool Failed Tcl_pool_GetFromObj: pool (line 201) invoked from within "pool $newpool"

 

 

What am I missing ?

 

  • newpool is set from the 3rd field of the datagroup:

     

     

    set newpool [getfield $ppass " " 3]

     

     

    It looks like you're getting the destination URI instead of the pool. Can you confirm your datagroup is set up with < source URI > < target URI > < pool >?

     

     

    Aaron
  • Apparently my post didn't make it in.

     

     

    What's your datagroup look like?
  • Jan 7 13:13:47 tmm tmm[1667]: Rule ProxyPass : ppass is set to /LogToolDEV/ / test8080

     

    Jan 7 13:13:47 tmm tmm[1667]: Rule ProxyPass : clientside is set to /LogToolDEV/

     

    Jan 7 13:13:47 tmm tmm[1667]: Rule ProxyPass : serverside is set to /

     

    Jan 7 13:13:47 tmm tmm[1667]: Rule ProxyPass : newpool is set to

     

     

    hmmm
  • Weird, another one of my posts didn't make it in.

     

     

    What's your datagroup entry look like for the above?

     

     

    From the logs, it looks like: /LogToolDEV/ /
  • as the log shows the datagroup which gets stored in ppass looks like

     

     

    /LogToolDEV/ / test8080

     

     

    If I go into the code and do

     

     

    set ppass "/LogToolDEV/ / test8080"

     

     

    not only does the error go away but the irule seems to work
  • So, you're trying to do the following?

     

     

    Clientside - /LogToolDEV/

     

    Serverside - /

     

    Pool - test8080

     

     

    Correct?

     

     

    Can you try /LogToolDEV without the trailing / ?
  • now I cant get any log output at all . So I'll have to figure out what I've done
  • well I'm not sure what I learned from this exercise . The issue with the missing variables seems to have gone away . perhaps I had multiple spaces between the fields ?

     

    Anyway thanks for the help . The irule still doesnt do what I what I want . I think I have a basic misunderstanding of what the result of the apache directive

     

     

    ProxyPass /LogToolDEV/ http://localhost:8080/

     

     

    is