Quoting Thomas HERVE email@example.com:
Quoting Matt Goodall firstname.lastname@example.org:
You need to add a nevow.vhost.VHostMonsterResource to your site. See the docstring for details, including how to configure the Apache proxy.
Well in fact I use a resource wrapped in a guard.SessionWrapper to get the authentication functionnality, and the only solution I've seen for using vhosts is the small hack found here : http://twistedmatrix.com/pipermail/twisted-web/2004-October/000801.html. There's not seem to have a clean solution for this problem, and I'm not (yet :)) able to judge if I should use this.
As always, it's faster to talk than it is to search, and I found a solution in svn sandbox, in tv/monsterguard. It "simply" uses an intermediate root page to declare the VHostMonster.
I looks like this : In apache configuration : ProxyPass /app http://localhost:8080/vhost/http/www.example.com/app
In tac file : # Start code realm = mysite.MyRealm() portal = portal.Portal(realm) portal.registerChecker(checkers.AllowAnonymousAccess(), credentials.IAnonymous) portal.registerChecker(mysite.MyCredChecker())
// Create a small static page, should not be accessed root = static.Data('This is the private server, not accessible from the Internet. It hosts <a href="app/">app</a>', 'text/html') root.putChild('', root) root.putChild('vhost', vhost.VHostMonsterResource()) root.putChild('app', guard.SessionWrapper(portal, mindFactory=livepage.LivePage))
// MySite is an appserver.Site site = mysite.MySite(root)
application = service.Application("mysite") internet.TCPServer(8080, site).setServiceParent(application) # END Code