简体   繁体   中英

Using twisted to selectively reverse proxy to different servers

I'm using Twisted (well twistd actually) to serve content like this currently :

twistd -n -o web --path=./foo/

That's fine but I want to send some requests to another server - like this.

When the client requests

localhost/something.html

I want the request to be handled by the twistd server .

But when the client requests

localhost/api/somedata

I want the request to be reverse proxied to another server .

So in summary if the URL contains the string "api" then I want the request reverse proxied elsewhere.

I can see that Twisted has a built in Reverse Proxy but I don't know how to use that so that I can filter requests made in such a way that some requests would get sent off to the alternative server and some wouldn't.

ReverseProxyResource is a resource. You can place it into a resource hierarchy.

root = Resource()
root.putChild("something.html", SomethingHTML())
root.putChild("api", ReverseProxyResource(...))

This is just one example of an arrangement of the resource hierarchy. You can combine ReverseProxyResource with other resources in any of the ways supported by IResource .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM