尚硅谷nginx教程-1nginx簡介


1.什么是nginx?

nginx是一個高性能的HTTP和反向代理的web服務器,同時也提供了IMAP/POP3/SMTP服務。
特點:占用內存少,並發能力強

2.nginx作為web服務器

nginx可以作為靜態頁面的web服務器,同時還支持CGI協議的動態語言,比如perl、php等,但是不支持Java。Java程序只能通過tomcat配合完成。nginx專為性能優化而開發,性能是其最重要的考量,實際上非常注重效率,能經受高負載的考驗,有報告表明能支持高達50000個並發的連接數。更多查看https://lnmp.org/nginx.html

3.正向代理與反向代理

nginx不僅可以做反向代理,實現負載均衡,還能用作正向代理來進行上網等功能。

3.1 正向代理

大陸不允許直接訪問Google,因此需要在瀏覽器端配置代理服務器,通過代理服務器去訪問Google。
在客戶端(如瀏覽器)配置代理服務器,通過代理服務器進行網絡訪問的過程,就稱為正向代理。

3.2 反向代理

客戶端對代理是無感知的,因為客戶端不需要配置代理,也不知道目標服務器,只知道代理服務器。我們只需要將請求發送到反向代理服務器上,由反向代理服務器去選擇目標服務器獲取數據后再返回給客戶端。此時 反向代理服務器和目標服務器 對外就是一個服務器,暴露的是代理服務器地址,隱藏了真實服務器的IP地址。

4.負載均衡

客戶端發送多個請求到服務器,服務器處理請求。有一些可能要與數據庫進行交互,服務器處理完畢后,再將結果返回給客戶端。

這種架構模式對於早期相對單一的系統,並發請求相對較少的情況下是比較合適的,成本也低。但是隨着信息數量的不斷增長,訪問量和數據量的飛速增長,以及數據業務的復雜度增加,這種架構會造成服務器響應客戶端的請求日益緩慢,並發量特別大的時候,還容易導致服務器崩潰。
很明顯這是服務器性能的瓶頸造成的問題,那么如何解決這種情況呢?
我們首先想到的是升級服務器的配置,比如提高CPU、加大內存等提高機器的物理性能來解決問題。

但是我們知道摩爾定律日益失效,硬件的提升已經不能滿足需求了。
例如天貓雙十一當天,某個熱銷商品的瞬時訪問量是極其龐大的,那么類似上面的架構,將機器都增加到現有的頂級物理配置,都不能滿足需求,那該怎么辦?
上面的分析表明通過增加服務器物理配置來解決問題的方法,即縱向解決問題的方法行不通了。那么橫向增加服務器的數量呢?集群的概念就這樣產生了。

單台服務器解決不了,我們增加服務器的數量,然后將請求分發到各個服務器上,將原來請求集中到單個服務器上的情況,改為將請求分發到多個服務器上,將負載分發到不同的服務器上,也就是我們所說的負載均衡。

5. 動靜分離

把靜態資源和動態資源都部署到tomcat里面,每次請求不管是靜態資源,還是動態資源,都去請求tomcat。用單服務部署所有的內容。
局限性:請求靜態資源和動態資源都去請求tomcat,會帶來更大的壓力。

為了加快網站的解析速度,可以把動態頁面和靜態頁面由不同的服務器來解析,加快解析速度,降低原來單個服務器的壓力。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM