No default pool is fine just use the LTP policy to add an extra rule at the bottom to catch anything that does not match and log it.
You will need a clientssl and serverssl profile if your nodes are SSL
The HTTP host is what the client is requesting. They don't see the backend at all. From the client's perspective the F5 is the server. From the server perspective the F5 is the client. They don't know about each other at all.
Because I don't have enough data I need to make a few assumptions. Are you routing using URI or host ? If host then separate your servers into pools based on hostname so if two server look after the same hostname they should be in the same pool. If URI then separate your servers into pools of servers who look after the same URI match.
Then for host matching your LTP would look like...
Rule 1. HTTP host equals app1.mydomain.com forward to pool app1-pool
Rule 2. HTTP host equals app2.mydomain.com forward to pool app2-pool
Rule 3. HTTP host equals app3.mydomain.com forward to pool app3-pool
or for URI matching it would look like...
Rule 1. HTTP path starts_with /site1 forward to pool app1-pool
Rule 2. HTTP path starts_with /site2 forward to pool app2-pool
Rule 3. HTTP path starts_with /site3 forward to pool app3-pool
You should have a catch all rule at the end to pickup anything that's not matching
Rule 4. Match any traffic, Log tcl:UNMATCHED URI [HTTP::uri]
Then when you are testing you can goto System, Logs, Local Traffic and search for UNMATCHED to see if any traffic is not matching your rules.