Linux服务之nginx服务篇一(概念)
nginx官網:http://nginx.org/
一、 nginx和apache的區別
Nginx:
1、輕量級,采用 C 進行編寫,同樣的 web 服務,會占用更少的內存及資源。
2、抗并發,nginx 以 epoll and kqueue 作為開發模型,處理請求是異步非阻塞的,負載能力比 apache 高很多,而 apache 則是阻塞型的。在高并發下 nginx 能保持低資源低消耗高性能 ,而 apache 在 PHP 處理慢或者前端壓力很大的情況下,很容易出現進程數飆升,從而拒絕服務的現象。
3、nginx 處理靜態文件好,靜態處理性能比 apache 高三倍以上。
4、nginx 的設計高度模塊化,編寫模塊相對簡單。
5、nginx 配置簡潔,正則配置讓很多事情變得簡單,而且改完配置能使用 -t 測試配置有沒有問題,apache 配置復雜 ,重啟的時候發現配置出錯了,會很崩潰。
6、nginx 作為負載均衡服務器,支持 7 層負載均衡。
7、nginx 本身就是一個反向代理服務器,而且可以作為非常優秀的郵件代理服務器。
8、啟動特別容易, 并且幾乎可以做到 7*24 不間斷運行,即使運行數個月也不需要重新啟動,還能夠不間斷服務的情況下進行軟件版本的升級
9、社區活躍,各種高性能模塊出品迅速
Apache:
1、apache 的 rewrite 比 nginx 強大,在 rewrite 頻繁的情況下,用 apache
2、apache 發展到現在,模塊超多,基本想到的都可以找到
3、apache 更為成熟,少 bug ,nginx 的 bug 相對較多
4、apache 超穩定
5、apache 對 PHP 支持比較簡單,nginx 需要配合其他后端用
6、apache 在處理動態請求有優勢,nginx 在這方面是雞肋,一般動態請求要 apache 去做,nginx 適合靜態和反向。
apache 仍然是目前的主流,擁有豐富的特性,成熟的技術和開發社區
總結
兩者最核心的區別在于 apache 是同步多進程模型,一個連接對應一個進程,而 nginx 是異步的,多個連接(萬級別)可以對應一個進程
一般來說,需要性能的 web 服務,用 nginx 。如果不需要性能只求穩定,更考慮 apache ,后者的各種功能模塊實現得比前者,例如 ssl 的模塊就比前者好,可配置項多。epoll(freebsd 上是 kqueue ) 網絡 IO 模型是 nginx 處理性能高的根本理由,但并不是所有的情況下都是 epoll 大獲全勝的,如果本身提供靜態服務的就只有寥寥幾個文件,apache 的 select 模型或許比 epoll 更高性能。當然,這只是根據網絡 IO 模型的原理作的一個假設,真正的應用還是需要實測了再說的。
更為通用的方案是,前端 nginx 抗并發,后端 apache 集群,配合起來會更好。
二、集群
簡單來說,集群就是指一組相互獨立的計算機,利用高速通信網絡組成的一個較大的計算機服務系統,每個集群節點都是運行各自服務的獨立服務器。這些服務器之間可以彼此通信,協同向用戶提供應用程序、系統資源和數據,并以單一系統的模式加以管理。當用戶客戶機請求集群系統時,集群給用戶的感覺就是一個單一的服務器,而實際上用戶請求的是一組集群服務器。
集群主要包括幾大特點:高性能、價格有效性、可伸縮性、高可用性、透明性、可管理性和可編程性。
1、負載均衡集群
常見的負載均衡的架構包括有負載均衡集群、高可用性集群、高性能計算集群等等。這里著重介紹負載均衡集群,其他的集群方式不做介紹。
負載均衡集群為企業提供了更為實用、性價比更高的系統架構解決方案。負載集群可以把很多客戶集中的訪問請求負載壓力盡可能平均分攤到計算機集群中處理。客戶訪問請求負載均衡通常包含應用程序處理負載均衡和網絡流量負載。這樣的系統非常適合使用同一組應用程序為大量用戶提供服務的模式,每個節點都可以承當一定的訪問請求負載壓力,并且可以實現訪問請求在各節點之間動態分配,以實現負載均衡。
負載均衡集群運行時,一般是通過一個或多個前端負載均衡器將客戶訪問請求分發到后端的一組服務器上,從而達到整個系統的高性能和高可用性。一般高可用性集群和負載均衡集群使用類似的技術,或同事具有高可用與負載均衡的特點。負載均衡的作用為:分擔用戶訪問及數據流量、保持業務的連續性、應用于Web業務及數據庫從庫等服務器的業務。
2、Nginx負載均衡集群介紹
互聯網企業中常見的開源集群軟件有:Nginx、LVS、Haproxy、Keepalived等,硬件有F5、Netscaler等。
嚴格地說,Nginx僅僅是作為Nginx Proxy反向代理使用的,因為反向代理功能表現的效果是負載均衡集群的效果,所以也叫做Nginx負載均衡。反向代理和負載均衡的區別在于負載均衡通常都是對請求的數據包的轉發(也有可能會改寫數據包)、傳遞,其中DR模式明顯的特征就是從負載均衡下面的節點服務器來看,接收到的請求還是來自負載均衡器的客戶端的真實用戶。而反向代理,反向代理接收訪問用戶的請求后,會代理用戶重新發起請求代理下的節點服務器,最后把數據返回給客戶端用戶。在節點服務器來看,訪問節點服務器的客戶端用戶是反向代理服務器,而不是真實的網站訪問用戶。
Nginx負載均衡的模塊主要有兩個,ngx_http_proxy_module,ngx_http_upstream_module。編譯的時候需要把這兩個模塊編譯進去。
轉載于:https://www.cnblogs.com/renyz/p/11283840.html
總結
以上是生活随笔為你收集整理的Linux服务之nginx服务篇一(概念)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌插件无法显示在地址栏右侧
- 下一篇: vmware 5.51 下安装Ubunt