windows系統部署nginx真的好嗎?

團子哥


都說nginx好,為啥好,主要利用到了linux的特性epoll。這裡不再複述他的優點。主要說nginx,因為epoll,nginx才可以做到高併發,低內存。而windows呢。他並不具備epoll功能,所以nginx的殺手鐧,再windows下並不起作用,只能用select模型。一個無法發揮其優勢的軟件,我們還會這樣部署嗎?因而win下最好的還是iis,apache。如果win下部署,可以用iis的不推薦其他軟件。畢竟是親兒子。肯定系統有優化,而且事實證明確實。

下面有官方截圖和文字翻譯

nginx for Windows版本使用本機Win32 API(而不是Cygwin仿真層)。當前只使用select()連接處理方法,因此不應期望高性能和可伸縮性。由於這個和其他一些已知的問題,nginx for Windows版本被認為是beta版本。目前,除了XSLT過濾器、圖像過濾器、GeoIP模塊和嵌入式Perl語言之外,它提供了與UNIX版nginx幾乎相同的功能。



萬能擼Sir


說起Nginx相信很多人都用過這款Web服務器軟件,Nginx是一款輕量級的Web服務器和反向代理及郵件服務器,相較於其它Web服務器,Nginx最大的特點就是:佔用內存資源少、併發高。就國內來說,我們所熟知的大型互聯網站都用了Nginx,如:淘寶、騰訊、京東、網易等等。

正常情況下,Nginx都是部署在Linux內核系統下的,不少微軟系開發同學可能就要問了,Nginx能否部署在Windows系統上呢?

Nginx支持Linux及Windows等多個系統

Nginx是由C語言開發出來的,雖然Nginx絕大多數都是部署在Linux/Unix類系統下,但Nginx也是支持Windows系統的。

如果需要在Windows系統下安裝Nginx,可以去Nginx官網下載Windows版本的Nginx即可。

Nginx為什麼支持高併發?

都說Nginx支持高併發,那Nginx為什麼可以支持高併發呢?這就要看看Nginx的實現原理了:

1、多進程單線程的工作模式

Nginx啟動後,會生成一個master進程和多個獨立的worker進程(獨立的worker進程可避免進程間的影響)。master進程接收信號同時監控worker進程的運行狀態,當worker進程掛了後會自動啟動新的worker進程。

2、epoll事件模型

說epoll模型前要了解下什麼是IO多路複用,所謂的“IO多路複用”其實是指多個描述符的I/O操作都能在一個線程內併發交替地順序完成。

IO多路複用常用模型有:select、poll、epoll等,在這其中epoll性能最好(大家只要記住epoll性能好就行了)。

Windows版的Nginx性能及伸縮性較差

雖然Nginx官方提供了Windows版的Nginx,但是Windows版的Nginx都屬於Beta版本,在功能及性能上都比不上Linux/Unix版的Nginx。


為什麼這樣說呢?

因為Windows不支持epoll模型,這樣一來Nginx也無法使用epoll模型,併發能力也就差了。

以上就是我的觀點,對於這個問題大家是怎麼看待的呢?歡迎在下方評論區交流 ~ 我是科技領域創作者,十年互聯網從業經驗,歡迎關注我瞭解更多科技知識!

網絡圈


很高興回答你的問題我是林創雲,如果我的回答對你有幫助歡迎給我評論留言或者點贊加個關注!

相信很多人都聽過nginx,這個小巧的東西慢慢地在吞食apache和IIS的份額。

nginx官方都發行了windows版本,這肯定是對windows認可的?只是更多的人是選擇在更穩定的linux下運行nginx。

windows運行nginx肯定是可以的,只是相對linux差了一點點。


分享到:


相關文章: