Very odd reverse proxy problem

The things:

  • I have a nginx handmade compiled under the hood
  • I have an official zope+plone installation on native windows
  • I have a django based application inside the cygwin
  • I have a tomcat+cas installation on native windows

All of that seem to be configured correctly.

What i want to do is to make my nginx a reverse proxy of the 3 others

Because of some other application needs (wsgi served with flup/socket) i
that nginx to live inside the cygwin installation. That’s not my concern
afterall :).

The nginx works well for static contents and as the the django and
installations reverse proxy.

Here come problems with zope+plone.

If i hit my http://url/plone (nginx mapped point to the plone install as
reverse proxy), the first request (get /) pass, but the other stall as
partial content and are very long to be satisfied. The browser seems to
blocked on some read() call.

I tried a bunch of things nginx side (use epoll, use select, tweak proxy
parameters, stop proxy buffering, set timeouts, set retrys and so on)
but i have
not found the right configuration if it is there.

But where it is very strange is that if i make an ssh tunnel from
to prod_machine:localhost:80, then make some entry into my /etc/hosts to
the dns name. Then browse to http://myurl/plone, no problem, i have the
and all http request are satisfied (js & co.).

I really don’t know how to debug that, can it be because the request
enter from
cygwin, go out to windows re enter cygwin and go for the client?

The fact that throught the ssh tunnel, when i hit the nginx server on my
install (like “as normal”, i dont hit plone but nginx) work perfectly
lives me
without words. Other strange thing is that the CAS application, also
reverse proxified work like a charm.

Other thing is that if i use the windows nginx binary from nginx
website, with
equal configuration, it works. The only thing is nginx running out of
stack and compiled for win32.

If someone has some suggestions …