Commits

Sylvain Hellegouarch  committed a243b01

basic vhost recipe

  • Participants
  • Parent commits 80604ea

Comments (0)

Files changed (1)

File deployment/vhost/__init__.py

+# -*- coding: utf-8 -*-
+""" CherryPy provides some support for virtual hosting
+of multi-applications on one single server instance.
+
+You need a base application:
+
+ * attach instances of other apps to that application
+ * create a mapping between domains/sub-domains
+   to path that match the instances of your sub-apps.
+
+To run this example, add the following lines to your
+hosts file:
+
+127.0.0.1       my.example.com
+127.0.0.1       www.example.com
+
+Then start the server and go to:
+
+http://my.example.com:8090/
+http://www.example.com:8090/
+"""
+import cherrypy
+
+class Root(object):
+    def __init__(self):
+        self.app1 = App1()
+        self.app2 = App2()
+
+class App1(object):
+    @cherrypy.expose
+    def index(self):
+        return "Hello world from app1"
+    
+class App2(object):
+    @cherrypy.expose
+    def index(self):
+        return "Hello world from app2"
+
+if __name__ == '__main__':
+    cherrypy.config.update({'server.socket_port': 8090})
+
+    hostmap = {
+        'my.example.com:8090': '/app1',
+        'www.example.com:8090': '/app2',
+    }
+    
+    config = {
+        'request.dispatch': cherrypy.dispatch.VirtualHost(**hostmap)
+    }
+     
+    cherrypy.quickstart(Root(), '/', {'/': config})