Forum Discussion

Tim_90553's avatar
Tim_90553
Icon for Nimbostratus rankNimbostratus
Feb 08, 2013

ProxyPass traffic

I've setup ProxyPass on a virtual server to replace the functionality we are currently using on an IBM IHS server.

 

The virtual server is dev.devsite.com and the host clients use to access the site is also dev.devsite.com

 

It appears that even after it's found a valid rule to proxy it still sends the request to the default pool(DEV_POOL) instead of the parsed pool(DEV_ELEARN). Am I incorrect in thinking that the traffic should be sent to the members in DEV_ELEARN? This is my first attempt at using this, so I may just have configured something wrong. Any ideas?

 

Here are the entries in my data group:

 

dev.devsite.com/elearning/ := elearningdev.test.com/ DEV_ELEARN

 

dev.devsite.com/elearning/* := elearningdev.test.com/ DEV_ELEARN

 

elearning/ := elearningdev.test.com/ DEV_ELEARN

 

elearning/* := "elearningdev.test.com/ DEV_ELEARN

 

 

Here is the output from the debug:

 

Feb 8 09:48:02 local/tmm info tmm[5119]: Rule ProxyPass : dev.devsite.com: 172.x.x.x:1907 -> 12.x.x.x:443

 

Feb 8 09:48:02 local/tmm info tmm[5119]: Rule ProxyPass : VS=dev.devsite.com, Host=dev.devsite.com, URI=/DEVelearn/ElearningDriverServlet?MatrixID=0: No rule found, using default pool DEV_POOL and exiting

 

Feb 8 09:48:02 local/tmm3 info tmm3[5122]: Rule ProxyPass : dev.devsite.com: 172.x.x.x:1908 -> 12.x.x.x:443

 

Feb 8 09:48:02 local/tmm info tmm[5119]: Rule ProxyPass : VS=dev.devsite.com, Host=dev.devsite.com, URI=/DEVelearn/ElearningDriverServlet?MatrixID=0: 302 response from DEV_POOL 192.168.201.142 443

 

Feb 8 09:48:02 local/tmm3 info tmm3[5122]: Rule ProxyPass : VS=dev.devsite.com, Host=dev.devsite.com, URI=/elearning/elearning/includes/login_Action.asp?rNum=67346312&ts=2013-02-08

 

-09.48.02.859000: Found Rule, Client Host=dev.devsite.com, Client Path=/elearning/, Server Host=elearningdev.test.com, Server Path=/

 

Feb 8 09:48:02 local/tmm3 info tmm3[5122]: Rule ProxyPass : VS=dev.devsite.com, Host=dev.devsite.com, URI=/elearning/elearning/includes/login_Action.asp?rNum=67346312&ts=2013-02-08

 

-09.48.02.859000: Using parsed pool DEV_ELEARN (make sure you have OneConnect enabled)

 

Feb 8 09:48:02 local/tmm3 info tmm3[5122]: Rule ProxyPass : VS=dev.devsite.com, Host=dev.devsite.com, URI=/elearning/elearning/includes/login_Action.asp?rNum=67346312&ts=2013-

 

02-08-09.48.02.859000: New Host=elearningdev.test.com, New Path=/elearning/includes/login_Action.asp?rNum=67346312&ts=2013-02-08-09.48.02.859000

 

Feb 8 09:48:03 local/tmm3 info tmm3[5122]: Rule ProxyPass : VS=dev.devsite.com, Host=dev.devsite.com, URI=/elearning/elearning/includes/login_Action.asp?rNum=67346312&ts=2013-02-0

 

8-09.48.02.859000: 404 response from DEV_POOL 192.x.x.x 443

 

Feb 8 09:48:03 local/tmm3 info tmm3[5122]: Rule ProxyPass : VS=dev.devsite.com, Host=dev.devsite.com, URI=/elearning/elearning/includes/login_Action.asp?rNum=67346312&ts=2013-02-08-09.48.02.859000: Checking Location=, $protocol=

 

Feb 8 09:48:03 local/tmm3 info tmm3[5122]: Rule ProxyPass : VS=dev.devsite.com, Host=dev.devsite.com, URI=/elearning/elearning/includes/login_Action.asp?rNum=67346312&ts=2013-02-08-09.48.02.859000: Checking Content-Location=, $protocol=

 

Feb 8 09:48:03 local/tmm3 info tmm3[5122]: Rule ProxyPass : VS=dev.devsite.com, Host=dev.devsite.com, URI=/elearning/elearning/includes/login_Action.asp?rNum=67346312&ts=2013-02-08-09.48.02.859000: Checking URI=, $protocol=

 

 

 

Additional info:

 

elearningdev.test.com is not in DNS, just used in the header when being sent to the back-end server

 

DEV_POOL is the pool used for everything that's not being handled by ProxyPass(It's also the default pool for the VS)

 

DEV_ELEARN is the pool used for ProxyPass, contains two members(back-end web servers)

 

OneConnect is on(using default OneConnect profile)

 

 

 

3 Replies

  • Ok, learning slowly here. I have another irule attached to this VIP. I discovered that the "when HTTP_REQUEST" in ProxyPass runs then the "when HTTP_REQUEST" event in my other irule runs and puts the traffic to the pool referenced in my other irule. I then put in an if statement to check to see if the URI starts with /elearning and will "return" if it does. Now it looks as if the ProxyPass never executes it's "when HTTP_REQUEST_SEND" now. Anything I need to know about having another irule attached to a VIP with ProxyPass also attached?
  • You can use the priority command in the event(s) to dictate when the events in that command are evaluated.

     

     

    https://devcentral.f5.com/wiki/iRules.priority.ashx

     

  • I did. I assigned a 400 to my irule and ProxyPass defaults to 500.