Nginx Window native

Hello,

Going through nginx/Windows usage
http://nginx.org/en/docs/windows.html
I see that there are some important limitations:

Known issues

  • Although several workers can be run, only one of them actually does
    any work.
  • A worker can handle no more than 1024 simultaneous connections.
  • The cache and other modules which require shared memory support do
    not
    work in Windows Vista and later due to address space layout
    randomization
    being enabled in these Windows versions.

What are the reasons behind these limitations? Is it that this version
of
nginx should not be used if performance/scalability are required? Are
the
same limitations present in the Cygwin version of nginx?

Please advise.

Thanks
Kurien

Additionally the Windows version of the event polling which enables high
performance on unix is called IOCP and is not supported last I checked.
So you would basically be using select().

Windows support is very preliminary and while I can’t speak for the
development team, I don’t think it’s supposed to be used for anything
other than development or testing.

-Martin Fjordvald

Posted at Nginx Forum:

Hello,

I tested the Cywin version along with the following additional
configuration settings:

worker_processes 5;
worker_rlimit_nofile 3072;

events {
worker_connections 1024;
accept_mutex off;
multi_accept on;
}

The exact effect of the above settings on the functioning of nginx is
not
well understood. But with this configuration I find that multiple
workers
do the work and this improves scalability. One problem that I discovered
was that sometimes a connection is not accepted and the following error
is
emitted:

2012/01/24 11:45:16 [alert] 15964#0: accept() failed (14: Bad address)

For eg with 2000 concurrent connections about 15 fail to be accepted.
When
the client shuts down after waiting, the server sockets go into
CLOSE_WAIT
state. They seem to remain that way forever.

Is anyone aware of a way to overcome this problem?

Thanks
Kurien