Since we rely so heavily on the load balancers to handle part of the application logic the line between application servers and network equipment is blurred out. URIs and headers may change, and pools might be chosen depending on many different factors.

To add some transparence here I would recommend using the loadbalancer to give the users of your company additional information if they need it.

The iRule below would add the following informational response headers to requests originating from the data group list “office_public_ips”:

X-Virtual-Server-Name: /Partition/virtualserver-443
X-Original-URI: /profile
X-URI-Sent-To-Server: /internal/profile
X-Selected-Pool: /Partition/MyPool-80_pool
X-Active-Members: 4
X-Selected-PoolPort: 80
X-Member-Status: 80 up; 80 up; 80 up; 80 up;
X-TimeTaken-BigIP: 2
X-TimeTaken-Server: 53

It deserves some brush up but has been servicing us well for almost a year now. Don’t use it if you’re using web acceleration profiles (ram caching).