Nginx的基本概念和原理
一、Nginx基本概念
(engine x)是一個高性能的HTTP和反向代理web服務(wù)器,同時也提供了IMAP/POP3/SMTP服務(wù)。其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好,中國大陸使用nginx網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。
Nginx專為性能優(yōu)化而開發(fā),性能是器最重要的考量,實(shí)現(xiàn)上非常注重效率,能經(jīng)受高負(fù)載的考驗(yàn),據(jù)報告能支持高達(dá)50,000個并發(fā)連接數(shù)。
Nginx不僅能做反向代理,實(shí)現(xiàn)負(fù)載均衡;還能可以作正向代理來進(jìn)行上網(wǎng)等功能。
二、反向代理
在客戶端(瀏覽器)配置代理服務(wù)器,通過代理服務(wù)器進(jìn)行互聯(lián)網(wǎng)訪問。代理對象是客戶端,不知道服務(wù)端是誰。

客戶端不需要任何配置就能訪問,只需要將請求發(fā)送到反向代理服務(wù)器,由反向代理服務(wù)器去選擇目標(biāo)服務(wù)器,獲取數(shù)據(jù)后再返回給客戶端。對外就一個服務(wù)器,暴露的是反向代理服務(wù)器地址,隱藏了真實(shí)服務(wù)器IP地址。代理對象是服務(wù)端,不知道客戶端是誰。

三、負(fù)載均衡
客戶端發(fā)送多個請求到服務(wù)器,服務(wù)器處理請求,有些可能要訪問數(shù)據(jù)庫,服務(wù)器處理完畢后再將結(jié)果返回客戶端。
這種架構(gòu)模式單一,適合并發(fā)請求少的情況,但并發(fā)量大的時候如何解決?

首先可能想到升級服務(wù)器配置,但硬件的性能提升不能滿足日益增長的需求,此時想到服務(wù)器集群,增加服務(wù)器數(shù)量,然后將原先請求單個服務(wù)器的情況改為將請求分發(fā)到多個服務(wù)器上,將負(fù)載分發(fā)到多個服務(wù)器上,也就是我們講的

四、動靜分離
為了加快網(wǎng)站的解析速度,可以把動態(tài)頁面和靜態(tài)頁面有不同的服務(wù)器來解析,減少服務(wù)器壓力,加快解析速度。

五、原理
mater&worker

master接收信號后將任務(wù)分配給worker進(jìn)行執(zhí)行,worker可有多個。

六、worker如何工作
客戶端發(fā)送一個請求到master后,worker獲取任務(wù)的機(jī)制不是直接分配也不是輪詢,而是一種爭搶的機(jī)制,“搶”到任務(wù)后再執(zhí)行任務(wù),即選擇目標(biāo)服務(wù)器tomcat等,然后返回結(jié)果。

worker_connection
發(fā)送請求占用了woker兩個或四個連接數(shù)。
- 普通的靜態(tài)訪問最大并發(fā)數(shù)是:
worker_connections *worker_processes/ 2 /2/2 - 若是 HTTP 作 為反向代理來說,最大并發(fā)數(shù)量應(yīng)該是
worker_connections *worker_processes/ 4 /4/4。
當(dāng)然了,worker數(shù)也不是越多越好,worker數(shù)和服務(wù)器的CPU數(shù)相等時最適宜的。
優(yōu)點(diǎn):
- 可以使用
nginx –s reload熱部署,利用 nginx 進(jìn)行熱部署操作 - 每個 woker 是獨(dú)立的進(jìn)程,若其中一個woker出現(xiàn)問題,其他繼續(xù)進(jìn)行爭搶,實(shí)現(xiàn)請求過程,不會造成服務(wù)中斷
到此這篇關(guān)于Nginx的基本概念和原理的文章就介紹到這了,更多相關(guān)Nginx概念和原理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Docker主機(jī)啟動Nginx服務(wù)器的完整步驟詳解
Docker是一個開源的容器化平臺,用于輕松地打包、部署和運(yùn)行應(yīng)用程序,而Nginx是一個高性能的開源反向代理服務(wù)器,也是一個流行的Web服務(wù)器,這篇文章主要給大家介紹了關(guān)于使用Docker主機(jī)啟動Nginx服務(wù)器的完整步驟,需要的朋友可以參考下2024-07-07
詳解Linux環(huán)境下使Nginx服務(wù)器支持中文url的配置流程
這篇文章主要介紹了Linux環(huán)境下使Nginx服務(wù)器支持中文url的配置流程,文中還介紹了一個在Linux下將非UTF-8的文件名轉(zhuǎn)換為UTF-8編碼,的方法,需要的朋友可以參考下2016-04-04
SQL操作Pandas?DataFrame的三種方式示例詳解
這篇文章主要為大家介紹了SQL操作Pandas?DataFrame的三種方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
nginx php-fpm環(huán)境中chroot功能的配置使用方法
這篇文章主要介紹了nginx php-fpm環(huán)境中chroot功能的配置使用方法,此方法是比禁用PHP敏感函數(shù)更好的一個安全防護(hù)手手段,需要的朋友可以參考下2014-05-05
一段萬能的nginx接口實(shí)現(xiàn)反向代理配置
這篇文章主要介紹了一段萬能的nginx接口實(shí)現(xiàn)反向代理配置,詳細(xì)的介紹了什么是反向代理及其接口反向代理的實(shí)現(xiàn),非常具有實(shí)用價值,需要的朋友可以參考下2018-10-10

