Nginx (「engine x」) 是一個高效能的 HTTP 和反向代理伺服器,特點是佔有記憶體少,並行能力強,事實上 nginx 的並行能力確實在同型別的網頁伺服器中表現較好,中國大陸使用 nginx 網站使用者有:百度、京東、新浪、網易、騰訊、淘寶等
Nginx 可以作為靜態頁面的 web 伺服器,同時還支援 CGI 協定的動態語言,比如 perl、php等。但是不支援 java。Java 程式只能通過與 tomcat 配合完成。Nginx 專為效能優化而開發,效能是其最重要的考量,實現上非常注重效率 ,能經受高負載的考驗,有報告表明能支援高達 50,000 個並行連線數。
https://lnmp.org/nginx.html
Nginx 不僅可以做反向代理,實現負載均衡。還能用作正向代理來進行上網等功能。
正向代理:如果把區域網外的 Internet 想象成一個巨大的資源庫,則區域網中的使用者端要訪
問 Internet,則需要通過代理伺服器來存取,這種代理服務就稱為正向代理
(1)需要在使用者端設定代理伺服器進行指定網站存取 )需要在使用者端設定代理伺服器進行指定網站存取 )需要在使用者端設定代理伺服器進行指定網站存取 )
反向代理,其實使用者端對代理是無感知的,因為使用者端不需要任何設定就可以存取,我們只需要將請求傳送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器獲取資料後,在返回給使用者端,此時反向代理伺服器和目標伺服器對外就是一個伺服器,暴露的是代理伺服器地址,隱藏了真實伺服器 IP 地址。
暴露的是代理伺服器 地址,隱藏了真實暴露的是代理伺服器 地址,隱藏了真實暴露的是代理伺服器 地址,隱藏了真實IP地址
使用者端傳送多個請求到伺服器,伺服器處理請求,有一些可能要與資料庫進行互動,伺服器處理完畢後,再將結果返回給使用者端。
這種架構模式對於早期的系統相對單一,並行請求相對較少的情況下是比較適合的,成本也低。但是隨著資訊數量的不斷增長,存取量和資料量的飛速增長,以及系統業務的複雜度增加,這種架構會造成伺服器相應使用者端的請求日益緩慢,並行量特別大的時候,還容易造成伺服器直接崩潰。很明顯這是由於伺服器效能的瓶頸造成的問題,那麼如何解決這種情況呢?
我們首先想到的可能是升級伺服器的設定,比如提高 CPU 執行頻率,加大記憶體等提高機器的物理效能來解決此問題,但是我們知道摩爾定律的日益失效,硬體的效能提升已經不能滿足日益提升的需求了。最明顯的一個例子,天貓雙十一當天,某個熱銷商品的瞬時存取量是極其龐大的,那麼類似上面的系統架構,將機器都增加到現有的頂級物理設定,都是不能夠滿足需求的。那麼怎麼辦呢?
上面的分析我們去掉了增加伺服器物理設定來解決問題的辦法,也就是說縱向解決問題的辦法行不通了,那麼橫向增加伺服器的數量呢?這時候叢集的概念產生了,單個伺服器解決不了,我們增加伺服器的數量,然後將請求分發到各個伺服器上,將原先請求集中到單個伺服器上的情況改為將請求分發到多個伺服器上,將負載分發到不同的伺服器,也就是我們所說的負載均衡
設定負載均衡之後,tomcat的session,會發生不存再的情況,解決辦法
1.最簡單,不常用
儲存在cookie中
2.常用
存放再redis中
為了加快網站的解析速度,可以把動態頁面和靜態頁面由不同的伺服器來解析,加快解析速度。降低原來單個伺服器的壓力。
總結:
nginx的基礎知識總結大致如此,還是沒有深入的理解,nginx再伺服器上的使用還是非常常用的,有不足之處可以再評論區指出,關於linux中安裝nginx會在下一篇博文中。