Well, I would advice clearly against doing this for a live system at the moment. Don't fix it if it isn't broken.
Lion Server has a completely revamped UI, it takes quite a bit of time to reconnect all the bits and pieces. It does a lot under the hood which used to be exposed in Server Admin.
DNS / DHCP / other low level services are still available, but not exposed in the default UI anymore.
Set aside a separate machine, learn to find your way in the new UI, and then you may choose to upgrade your live system or not.
I've done some experimentation in order to answer my own question...
Firstly, I've only gotten the virtual named host kludge working with Passenger, not the new Lion scheme, but hey, it's a start...
Firstly, follow the Apple temporary fix, as linked in the question.
Then, the following works for me to support two virtual named hosts, implemented using Passenger and Rails. I derived this by taking the Lion virtual host example, and merging in my Snow Leopard config.
Disclaimer this works, but needs improvement. I've not got SSL working yet.
Add the following in a file named 0000_any_80_.conf
## Example Virtual Host Configuration
<VirtualHost *:80>
ServerName bongle.example.com
ServerAlias bungle.example.com
ServerAdmin bongle@example.com
RackEnv bongle_production
RailsEnv bongle_production
DocumentRoot "/Users/Nigel/Rails/bungle/public"
CustomLog "/var/log/apache2/access_log" combinedvhost
ErrorLog "/var/log/apache2/error_log"
<IfModule mod_ssl.c>
SSLEngine Off
SSLCipherSuite "ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM"
SSLProtocol -ALL +SSLv3 +TLSv1
SSLProxyEngine On
SSLProxyProtocol -ALL +SSLv3 +TLSv1
</IfModule>
<Directory "/Users/Nigel/Rails/bungle/public">
Options All +MultiViews -ExecCGI -Indexes
AllowOverride None
<IfModule mod_dav.c>
DAV Off
</IfModule>
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName burble.anothersite.com
ServerAlias www.anothersite.com
ServerAdmin bongle@anothersite.com
RackEnv burble_production
RailsEnv burble_production
DocumentRoot "/Users/Nigel/Rails/burble/public"
CustomLog "/var/log/apache2/access_log" combinedvhost
ErrorLog "/var/log/apache2/error_log"
<IfModule mod_ssl.c>
SSLEngine Off
SSLCipherSuite "ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM"
SSLProtocol -ALL +SSLv3 +TLSv1
SSLProxyEngine On
SSLProxyProtocol -ALL +SSLv3 +TLSv1
</IfModule>
<Directory "/Users/Nigel/Rails/school/public">
Options All +MultiViews -ExecCGI -Indexes
AllowOverride None
<IfModule mod_dav.c>
DAV Off
</IfModule>
</Directory>
</VirtualHost>
Additional contributions to improve this are welcome.
Best Answer
The admin tools that OS X Server provides for DNS configuration almost justify its use on its own. Combined with your needs of email, web, and development hosting, definitely go with Server. I will assume you have the appropriate hardware for running OS X server, because a regular iMac won't do; you need either an Xserve (no longer manufactured, but available used) or a Mac Pro (a Mac Mini Server might suffice, but it will be sluggish).