[Zope3-dev] Twisted Virtual Hosting Environment

Alex J. Champandard alex at ai-depot.com
Fri Apr 1 02:32:58 EST 2005


Hi,

I just setup Twisted to provide virtual hosting with Zope3.  Run the 
program with:

twistd --python=application.py

Optionally with the --nodaemon option.  Script is attached and pasted below.

Enjoy!


"""
A reverse proxy that runs on the server, dispatching requests to various 
other
underlying services or applications.
"""
from twisted.application import internet, service
from twisted.web import proxy, server, vhost, rewrite

# this is the base of our site, a container of vhosts
root = vhost.NameVirtualHost()

# list of subdomains mapped to Zope3
virtualHostZopeList = [
    'subdomain1',
    'subdomain2'
] 

# set up each one of the subdomains as a reverse proxy on the server
for v in virtualHostZopeList:
    path = v+'/++vh++http:'+v+'.my-site.org:80/++/'
    rp = proxy.ReverseProxyResource('localhost', 8080, path)
    root.addHost(v+'.my-site.org', rp)

# create an application to handle the forwarding of requests
application = service.Application('twisted')

# our application is a set of multiple services
sc = service.IServiceCollection(application)

# create our proxy TCP server, and add it to the services
i = internet.TCPServer(80, server.Site(root))
i.setServiceParent(sc)
-------------- next part --------------
"""
A reverse proxy that runs on the server, dispatching requests to various other
underlying services or applications.
"""
from twisted.application import internet, service
from twisted.web import proxy, server, vhost, rewrite

# this is the base of our site, a container of vhosts
root = vhost.NameVirtualHost()

# list of subdomains mapped to Zope3
virtualHostZopeList = [
    'subdomain1', 
    'subdomain2'
]  

# set up each one of the subdomains as a reverse proxy on the server
for v in virtualHostZopeList:
    path = v+'/++vh++http:'+v+'.my-site.org:80/++/'
    rp = proxy.ReverseProxyResource('localhost', 8080, path)
    root.addHost(v+'.my-site.org', rp)

# create an application to handle the forwarding of requests 
application = service.Application('twisted')

# our application is a set of multiple services
sc = service.IServiceCollection(application)

# create our proxy TCP server, and add it to the services 
i = internet.TCPServer(80, server.Site(root))
i.setServiceParent(sc)


More information about the Zope3-dev mailing list