CherryPy Recipes / deployment / vhost /

# -*- 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:

Then start the server and go to:
import cherrypy

class Root(object):
    def __init__(self):
        self.app1 = App1()
        self.app2 = App2()

class App1(object):
    def index(self):
        return "Hello world from app1"
class App2(object):
    def index(self):
        return "Hello world from app2"

if __name__ == '__main__':
    cherrypy.config.update({'server.socket_port': 8090})

    hostmap = {
        '': '/app1',
        '': '/app2',
    config = {
        'request.dispatch': cherrypy.dispatch.VirtualHost(**hostmap)
    cherrypy.quickstart(Root(), '/', {'/': config})
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.