mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
add multidomainapp example from Anand Chitipothu. Fix issue #99. Thanks!
This commit is contained in:
parent
09e243d6f6
commit
46bde6af85
1
THANKS
1
THANKS
@ -18,3 +18,4 @@ PA Parent <paparent@paparent.me>
|
||||
Travis Cline <travis.cline@gmail.com>
|
||||
Adrien Lemaire <lemaire.adrien@gmail.com>
|
||||
Oliver Tonnhofer <olt@bogosoft.com>
|
||||
Anand Chitipothu <anandology@gmail.com>
|
||||
|
||||
36
examples/multidomainapp.py
Normal file
36
examples/multidomainapp.py
Normal file
@ -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)
|
||||
])
|
||||
Loading…
x
Reference in New Issue
Block a user