diff --git a/THANKS b/THANKS index a74bb5e8..d90b7b06 100644 --- a/THANKS +++ b/THANKS @@ -18,3 +18,4 @@ PA Parent Travis Cline Adrien Lemaire Oliver Tonnhofer +Anand Chitipothu diff --git a/examples/multidomainapp.py b/examples/multidomainapp.py new file mode 100644 index 00000000..89e59e2b --- /dev/null +++ b/examples/multidomainapp.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 - +# +# This file is part of gunicorn released under the MIT license. +# See the NOTICE for more information. + +import re + +class SubDomainApp: + """WSGI application to delegate requests based on domain name. +""" + def __init__(self, mapping): + self.mapping = mapping + + def __call__(self, environ, start_response): + host = environ.get("HTTP_HOST", "") + host = host.split(":")[0] # strip port + + for pattern, app in self.mapping: + if re.match("^" + pattern + "$", host): + return app(environ, start_response) + else: + start_response("404 Not Found", []) + return [""] + +def hello(environ, start_response): + start_response("200 OK", [("Content-Type", "text/plain")]) + return ["Hello, world\n"] + +def bye(environ, start_response): + start_response("200 OK", [("Content-Type", "text/plain")]) + return ["Goodbye!\n"] + +app = SubDomainApp([ + ("localhost", hello), + (".*", bye) +])