I encountered the same problem and I suppose other will too.
Hereby my solution:
You need to create virtual servers on your glassfish, set the right root-module and forward your request with the full url.
Create a specific virtual server
Be sure your app is deployed to the config (server-config by default) and your domain resolves to the server.
You can easily test your setup by going to http://my.sample.com:8080/ (suposing that the app runs on 8080). Your app should be working.
2) Forward the request in apache. (on debian, but should be similar for other distros), create a my.sample.com-file (can be anything, but this is very explicit) in /etc/apache2/sites-available with following content (change domain-name of course)
<VirtualHost *:80>
ServerName my.sample.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://my.sample.com:8080/
ProxyPassReverse http://my.sample.com:8080/
</Location>
</VirtualHost>
enable the config and reload apache (on Debian, following commands should work)
a2ensite my.sample.com
/etc/init.d/apache2 reload
I did not use AJP because of a conflict I had with Primefaces GMap Module. Of course, changing from proxy to AJP ain't the hard part. Just be sure to have also selected the JK-enabled nework-listeners for the virtual server.
How to enable mod-proxy or mod ajp proxy on apache, just google for it :)