[Twisted-web] web proxy with twistd

Andreas De Stefani andreas.destefani at ucd.ie
Wed Jul 20 10:08:23 MDT 2005


Hello twisted programmers!

i was trying to write a proxy which allows me to access twisted and 
nevow websites on a local development server infrastructure to which i 
dont have direct access (the proxy sits on the gateway).

It works fine if i access external websites but it fails for homebrewed 
twisted websites and i always get a
No Such Resource File not found Error (the websites are running on port 
8080, 8081 ... but don't think thats the reason?! )

I might do somethin wrong in my proxy i suppose, here is my code

proxy.py:

from twisted.internet import protocol
from twisted.internet import reactor
from twisted.protocols import http
from twisted.web import proxy, server, resource



class ReverseProxyResource(resource.Resource):


        def getChild(self, path, request):
                return self

        def render(self, request):
                d = request.received_headers.get('destination')
                hp = request.received_headers['host']
                if ':' in hp:
                        host, port = hp.split(':')
                        port = int(port)
                else:
                        host = hp
                        port = 80

                print 'forwarding to: ' + host + ' port ' + str(port)
                clientFactory = proxy.ProxyClientFactory(request.method, 
request.uri,
                                                                         
request.clientproto,
                                                                         
request.getAllHeaders(),
                                                                         
request.content.read(),
                                                                         
request)
                reactor.connectTCP(host, port, clientFactory)
                return server.NOT_DONE_YET

site = server.Site(ReverseProxyResource())
reactor.listenTCP(8484, site)
reactor.run()


Thanks for your help!

Andy



More information about the Twisted-web mailing list