--- WebappConfig/config.py	2006-12-30 13:38:36.000000000 -0500
+++ config.py	2009-05-28 12:08:53.000000000 -0400
@@ -1289,8 +1289,9 @@
 
         allowed_servers = {'apache'   : WebappConfig.server.Apache,
                            'lighttpd' : WebappConfig.server.Lighttpd,
-                           'aolserver': WebappConfig.server.Aolserver,
-                           'cherokee' : WebappConfig.server.Cherokee}
+                           'cherokee' : WebappConfig.server.Cherokee,
+			   'nginx'    : WebappConfig.server.Nginx,
+			   'gatling'  : WebappConfig.server.Gatling}
 
         server = self.config.get('USER', 'vhost_server')
 
--- WebappConfig/server.py	2009-05-28 12:06:48.000000000 -0400
+++ server.py	2009-05-28 12:10:54.000000000 -0400
@@ -316,16 +316,6 @@
         self.vhost_server_uid = get_user('lighttpd')
         self.vhost_server_gid = get_group('lighttpd')
 
-class Aolserver(Basic):
-
-    name   = 'Aolserver'
-    desc   = 'supports installation on Aolserver'
-    dep    = 'www-servers/aolserver'
-
-    def set_server_user(self):
-        self.vhost_server_uid = get_user('aolserver')
-        self.vhost_server_gid = get_group('aolserver')
-
 class Cherokee(Basic):
 
     name   = 'Cherokee'
@@ -336,9 +326,30 @@
         self.vhost_server_uid = get_user('cherokee')
         self.vhost_server_gid = get_group('cherokee')
 
+class Nginx(Basic):
+           
+    name   = 'Nginx'
+    desc   = 'supports installation on Nginx'
+    dep    = 'www-servers/nginx'
+                              
+    def set_server_user(self):          
+        self.vhost_server_uid = get_user('nginx')
+        self.vhost_server_gid = get_group('nginx')
+
+class Gatling(Basic):
+           
+    name   = 'Gatling'
+    desc   = 'supports installation on Gatling'
+    dep    = 'www-servers/gatling'
+                              
+    def set_server_user(self):          
+        self.vhost_server_uid = get_user('gatling')
+        self.vhost_server_gid = get_group('gatling')
+
 def listservers():
 
     OUT.notice('\n'.join(['apache',
-                          'aolserver',
                           'lighttpd',
-                          'cherokee']))
+                          'cherokee',
+			  'nginx',
+			  'gatling']))
--- config/webapp-config	2006-12-30 13:39:13.000000000 -0500
+++ webapp-config	2009-05-28 12:11:24.000000000 -0400
@@ -65,9 +65,10 @@
 # your choices are:
 #
 # apache
-# aolserver
 # lighttpd
 # cherokee
+# nginx
+# gatling
 #
 # you can override this setting by using the -s switch to webapp-config
 
