How does this work? How do you host pixelfed.domain.com and mastodon.domain.com together in the same domain, with queries for “@user@domain.com” to the webfinger host path?
I’m other words, how does the querying application know which resource it needs? How do you know that a pixelfed instance will get the pixelfed resource versus the mastodon resource?
I can’t speak for those two services in particular, but I know that Matrix will check https://domain.com/.well-known/matrix/server to see what (sub)domain is responsible for domain.com. I suspect other services also use .well-known too.
Yes, they use a webfinger on the .well-known path.
The webfinger includes the subdomain. So the webfinger would be either @user@mastodon.domain.com or @user@pixelfed.domain.com, given your example.