nginx Nginx (engine x) 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。在鏈接高併發的狀況下,Nginx是Apache服務器不錯的替代品,可以支持高達 50,000 個併發鏈接數的響應。html
Nginx採用了模塊化、事件驅動、異步、單線程及非阻塞的架構,並大量採用了多路複用及事件通知機制。nginx
Nginx會按需同時運行多個進程:一個主進程(master)和幾個工做進程(worker),配置了緩存時還會有緩存加載器進程(cache loader)和緩存管理器進程(cache manager)等。全部進程均是僅含有一個線程,並主要經過「共享內存」的機制實現進程間通訊。主進程以root用戶身份運行,而worker、 cache loader和cache manager均應以非特權用戶身份運行。瀏覽器
Nginx默認以多進程的方式工做,一個master進程和多個worker進程,master進程主要用來管理worker進程.多個worker進程同等競爭來自客戶端的請求,一個worker進程能夠處理多個請求,但不能處理其它worker進程的請求.每一個worker進程裏面只有一個主線程,在epoll支持下,採用異步非阻塞的方式來處理請求,從而實現高併發.epoll支持監聽多個事件(socket輪詢),當事件沒準備好時,放到epoll裏面,事件準備好了,就去讀寫.與多線程相比,這種事件處理方式是有很大的優點的,不須要建立線程,每一個請求佔用的內存也不多,沒有上下文切換,事件處理很是的輕量級.併發數再多也不會致使無謂的資源浪費(上下文切換),更多的併發數,只是會佔用更多的內存而已.而httpd經常使用的工做方式是每一個請求會獨佔一個工做線程,當併發數上到幾千時,就同時有幾千的線程在處理請求了,這對操做系統來講,是個不小的挑戰.線程帶來的內存佔用很是大,線程的上下文切換帶來的cpu開銷很大,httpd的性能天然就上不去了.緩存
##下載網址 :http://nginx.org/en/download.html多線程
##下載穩定版 Stable version 架構
##下載完畢,解壓到一個不帶中文的路徑,不然啓動會報1113錯誤。 ##直接在路徑欄輸入cmd便可進入該目錄。 併發
##經常使用命令異步
啓動服務:start nginx 中止服務:nginx -s stop 從新加載:nginx -s reload(配置文件被修改後須要執行它)socket
##啓動成功 ##會出現兩個任務進程
##打開瀏覽器,輸入 http://localhost/ ##出現如下頁面,即成功