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>
|
Travis Cline <travis.cline@gmail.com>
|
||||||
Adrien Lemaire <lemaire.adrien@gmail.com>
|
Adrien Lemaire <lemaire.adrien@gmail.com>
|
||||||
Oliver Tonnhofer <olt@bogosoft.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