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