# Nginx Window native

**URL:** <https://www.ruby-forum.com/t/nginx-window-native/214687>\
**Category:** NGINX\
**Created:** [December 9, 2011, 10:09am UTC](https://www.ruby-forum.com/t/nginx-window-native/214687 "2011-12-09T10:09:26Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![dubstep](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/cdc98d/32.png) [@dubstep](https://www.ruby-forum.com/u/dubstep)\
**Post date:** [December 9, 2011, 10:09am UTC](https://www.ruby-forum.com/t/nginx-window-native/214687/1 "2011-12-09T10:09:26Z")

</div>

Hello,

Going through nginx/Windows usage  
[http://nginx.org/en/docs/windows.html](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

---

<div class="post-metadata">

**Author:** ![Kurien\_Mathew](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/4af34b/32.png) [@Kurien\_Mathew](https://www.ruby-forum.com/u/Kurien_Mathew)\
**Post date:** [December 9, 2011, 10:39am UTC](https://www.ruby-forum.com/t/nginx-window-native/214687/2 "2011-12-09T10:39:06Z")

</div>

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:

> **[Re: nginx Window native](https://forum.nginx.org/read.php?2,219822,219825#msg-219825)**
>
> 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 ca

---

<div class="post-metadata">

**Author:** ![Kurien\_Mathew](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/4af34b/32.png) [@Kurien\_Mathew](https://www.ruby-forum.com/u/Kurien_Mathew)\
**Post date:** [January 24, 2012, 12:11pm UTC](https://www.ruby-forum.com/t/nginx-window-native/214687/3 "2012-01-24T12:11:31Z")

</div>

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
