Thanks for, as always, a fast and clean answer! I'll try it out.
On Thu, May 30, 2013 at 12:27 PM, Roberto De Ioris <[email protected]> wrote: > > > Hi, Roberto and list readers, > > > > I have a need to implement SSL proxying via web proxy tunelling > ("CONNECT" > > method) http://en.wikipedia.org/wiki/HTTP_tunnel. > > I'm thinking if it's possible to do it inside the existing > > nginx-uwsgi-gevent-django application. > > > > The whole idea of it is a big hack, but I'm curious if it's at all > > possible. > > > > To implement it, one should relay all the trafic between the target > server > > and the client. > > Can I do it with uWSGI? > > > > Basically, I need something like a couple of threads or greenlets reading > > and writing to the raw socket when data is available on either end. > > > > Thanks for your reply. > > > > I do not see particular problems implementing it with uWSGI+gevent, but > you cannot use django for it (its view subsystem will make mess with > realtime sockets). > > basically you will end with something like: > > if environ['REQUEST_METHOD'] == 'CONNECT': > s = gevent.ssl.SSLSocket(..) > s.connect() > client_fd = uwsgi.connection_fd() > server_fd = s.fileno() > # wait for data on both end > ready = gevent.select.select([client_fd, server_fd], [], [], timeout) > ... > # if it is the client send data to the server > ... server_fd.write(client_fd.read(4096)) > # else... > ... client_fd.write(server_fd.read(4096) > > you need to add better check for non blocking writes, but generally this > is the approach i would follow > > > > -- > Roberto De Ioris > http://unbit.it > _______________________________________________ > uWSGI mailing list > [email protected] > http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi >
_______________________________________________ uWSGI mailing list [email protected] http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
