Question: I am a developer who is used to being able to test and debug code. 

Occasionally I have to make changes to our load balancer configuration. As far as I can see, if I mess this up it could stop the whole site working, but we don't have a way to test it off-line.

How do people test such things? I was hoping there would be some sort of emulator that I could use. Or is it possible to have a second configuration for testing?

I would like to be as confident in the changes I make to the load balancer as I am to the changes I make to my code. Does anyone have a test suite they use for testing their load balancer?

**update**

We are in the process of moving from one back end to another, and we are redirecting users based on the url.

Answer: 
Ideally, you should have an F5 BigIP in your (production parallel) staging environment. This allows you to test new configuration, code versions, features, etc without impacting production.

Assuming that this is not possible due to cost or other constraints, then the next best alternative would be to have a second set of 'QA' or 'UAT' services that is configured to hit the same back-end servers as production, but only has a small fraction of users targetting it.

Without knowing more about your configuration, it's difficult to be more specific. Are you able to provide a bit more detail as to how you are using your load-balancer, and what changes you are planning to make?

UPDATE: based on your clarification, it seems that you want to test your ability to flip users between one set of back-end servers and another, and that you are routing user requests based on the URL they are accessing? (Content switching).

If you are unable to afford another load-balancer in production, I would suggest configuring a new service using a test URL, and forwarding the requests to that URL the same as you do in production currently. Once you are happy that this test service is working as per production, you can change the policy associated with the test URL to forward to your new backend. This should verify that your Big-IP configuration is correct.

(Apologies for the lack of sample configuration, I've not worked with F5 load-balancers myself, only other vendors.)
I do this by setting up a second virtual (or set of virtuals) that are mapped to the same pools. You can then test the staging VIP by editing your /etc/hosts file (or Windows hosts file).

At this point I'll sing the praises of my outsourced DNS provider, Dynect (<http://dynect.com>). They have a Traffic Management feature that allows you to add both the old and new VIPs to a hostname rotation, but also adjust the weighting - the ratio of how often the old vs new IP is served, and then you can raise the weight to slowly migrate if a hard cutover is too risky.

For internal DNS, I believe that F5's GLB can do the same thing (but don't quote me as I don't have hands-on experience here).