Forum Discussion

mrdragosh's avatar
mrdragosh
Icon for Altocumulus rankAltocumulus
Oct 29, 2024

HTTP 404 received when changing pool

Hello, I have a setup with a VIP with an APM policy (LDAP auth) that serves two app (A and B). 

The default pool (for app A) is set on VS level.

We also have an irule on VS with the pool and some http host rewrite.

 

switch -glob [string tolower [HTTP::uri]] {        "/customerhub/*" {
            pool P_Customer

}

 

The issue is that for app B, the first request is always a HTTP 404. After I get the cookies it works fine (following requests).

If I switch the default pool to P_Customer and remove the irule above, it works fine, without 404!

 

Is it an issue with the MRHsession and the pool command in irule? How to pass it?

  • Ok, I solved the issue. Apparently the APM was sending the redirect to the default pool. I added an irule to direct the traffic based on URI to the pool appB on ACCESS_ACL_ALLOWED.

     

    Now works fine.

  • One update,

    it seems that first request gets send to pool A even if it should go to B. 

    Following requests go to B as supposed, but first gets 404.

     

    Clearing the cookies re-triggers the issue. Any idea?

  • you should configure proper health monitor for the pool, e.g. with proper url path to be checked, not just the simple "/".
    so, f5 will know whether the pool member can handle the request or not, hence will not send client request to non capable pool members.

  • Hello,

     

    I hope all of your transaction have "/customerhub/" in URL path. 

     

    Also please check front and backend packet capture logs in F5. use below command for get complete capture(front and back) 

    tcpdump -nni 0.0:nnnp -s 0 host "VIPIP" -w /var/log/example.pcap. you can check if the server is rejecting first packet or not

     

    I dont think its any health check issue as your pool showing as up every time( i hope no issues) . 

     

    BR

    Aswin

  • Ok, I solved the issue. Apparently the APM was sending the redirect to the default pool. I added an irule to direct the traffic based on URI to the pool appB on ACCESS_ACL_ALLOWED.

     

    Now works fine.