mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
37 lines
990 B
Python
37 lines
990 B
Python
# -*- 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)
|
|
])
|