内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

面試官常問的Nginx的那幾個問題?

什么是Nginx?

Nginx是一個高性能的HTTP和反向代理服務(wù)器,也是一個IMAP/POP3/SMTP服務(wù)器

創(chuàng)新互聯(lián)IDC提供業(yè)務(wù):成都服務(wù)器托管,成都服務(wù)器租用,成都服務(wù)器托管,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線機(jī)房,BGP機(jī)房,電信機(jī)房,移動機(jī)房,聯(lián)通機(jī)房。

Nginx是一款輕量級的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器 目前使用的最多的web服務(wù)器或者代理服務(wù)器,像淘寶、新浪、網(wǎng)易、迅雷等都在使用

為什么要用Nginx?

優(yōu)點(diǎn):

  • 跨平臺、配置簡單

  • 非阻塞、高并發(fā)連接:處理2-3萬并發(fā)連接數(shù),官方監(jiān)測能支持5萬并發(fā)

  • 內(nèi)存消耗?。洪_啟10個nginx才占150M內(nèi)存 成本低廉:開源

  • 內(nèi)置的健康檢查功能:如果有一個服務(wù)器宕機(jī),會做一個健康檢查,再發(fā)送的請求就不會發(fā)送到宕機(jī)的服務(wù)器了。重新將請求提交到其他的節(jié)點(diǎn)上。

  • 節(jié)省寬帶:支持GZIP壓縮,可以添加瀏覽器本地緩存

  • 穩(wěn)定性高:宕機(jī)的概率非常小

  • master/worker結(jié)構(gòu):一個master進(jìn)程,生成一個或者多個worker進(jìn)程

  • 接收用戶請求是異步的:瀏覽器將請求發(fā)送到nginx服務(wù)器,它先將用戶請求全部接收下來,再一次性發(fā)送給后端web服務(wù)器,極大減輕了web服務(wù)器的壓力

  • 一邊接收web服務(wù)器的返回數(shù)據(jù),一邊發(fā)送給瀏覽器客戶端

  • 網(wǎng)絡(luò)依賴性比較低,只要ping通就可以負(fù)載均衡

  • 可以有多臺nginx服務(wù)器

  • 事件驅(qū)動:通信機(jī)制采用epoll模型

為什么Nginx性能這么高?

得益于它的事件處理機(jī)制: 異步非阻塞事件處理機(jī)制:運(yùn)用了epoll模型,提供了一個隊列,排隊解決

Nginx是如何實(shí)現(xiàn)高并發(fā)的

service nginx start之后,然后輸入#ps -ef|grep nginx,會發(fā)現(xiàn)Nginx有一個master進(jìn)程和若干個worker進(jìn)程,這些worker進(jìn)程是平等的,都是被master fork過來的。在master里面,先建立需要listen的socket(listenfd),然后再fork出多個worker進(jìn)程。當(dāng)用戶進(jìn)入nginx服務(wù)的時候,每個worker的listenfd變的可讀,并且這些worker會搶一個叫accept_mutex的東西,accept_mutex是互斥的,一個worker得到了,其他的worker就歇菜了。而搶到這個accept_mutex的worker就開始“讀取請求--解析請求--處理請求”,數(shù)據(jù)徹底返回客戶端之后(目標(biāo)網(wǎng)頁出現(xiàn)在電腦屏幕上),這個事件就算徹底結(jié)束。

nginx用這個方法是底下的worker進(jìn)程搶注用戶的要求,同時搭配“異步非阻塞”的方式,實(shí)現(xiàn)高并發(fā)量。

為什么不使用多線程?

因?yàn)榫€程創(chuàng)建和上下文的切換非常消耗資源,線程占用內(nèi)存大,上下文切換占用cpu也很高,采用epoll模型避免了這個缺點(diǎn)

Nginx是如何處理一個請求的呢?

首先,nginx在啟動時,會解析配置文件,得到需要監(jiān)聽的端口與ip地址,然后在nginx的master進(jìn)程里面

先初始化好這個監(jiān)控的socket(創(chuàng)建socket,設(shè)置addrreuse等選項(xiàng),綁定到指定的ip地址端口,再listen)

然后再fork(一個現(xiàn)有進(jìn)程可以調(diào)用fork函數(shù)創(chuàng)建一個新進(jìn)程。由fork創(chuàng)建的新進(jìn)程被稱為子進(jìn)程 )出多個子進(jìn)程出來

然后子進(jìn)程會競爭accept新的連接。此時,客戶端就可以向nginx發(fā)起連接了。當(dāng)客戶端與nginx進(jìn)行三次握手,與nginx建立好一個連接后

此時,某一個子進(jìn)程會accept成功,得到這個建立好的連接的socket,然后創(chuàng)建nginx對連接的封裝,即ngx_connection_t結(jié)構(gòu)體

接著,設(shè)置讀寫事件處理函數(shù)并添加讀寫事件來與客戶端進(jìn)行數(shù)據(jù)的交換。最后,nginx或客戶端來主動關(guān)掉連接,到此,一個連接就壽終正寢了

正向代理

一個位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容,客戶端向代理發(fā)送一個請求并指定目標(biāo)(原始服務(wù)器)

然后代理向原始服務(wù)器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端??蛻舳瞬拍苁褂谜虼?/p>

正向代理總結(jié)就一句話:代理端代理的是客戶端

反向代理

反向代理(Reverse Proxy)方式是指以代理服務(wù)器來接受internet上的連接請求,然后將請求,發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器

并將從服務(wù)器上得到的結(jié)果返回給internet上請求連接的客戶端,此時代理服務(wù)器對外就表現(xiàn)為一個反向代理服務(wù)器

反向代理總結(jié)就一句話:代理端代理的是服務(wù)端

動態(tài)資源、靜態(tài)資源分離

動態(tài)資源、靜態(tài)資源分離是讓動態(tài)網(wǎng)站里的動態(tài)網(wǎng)頁根據(jù)一定規(guī)則把不變的資源和經(jīng)常變的資源區(qū)分開來,動靜資源做好了拆分以后

我們就可以根據(jù)靜態(tài)資源的特點(diǎn)將其做緩存操作,這就是網(wǎng)站靜態(tài)化處理的核心思路

動態(tài)資源、靜態(tài)資源分離簡單的概括是:動態(tài)文件與靜態(tài)文件的分離

為什么要做動、靜分離?

在我們的軟件開發(fā)中,有些請求是需要后臺處理的(如:.jsp,.do等等),有些請求是不需要經(jīng)過后臺處理的(如:css、html、jpg、js等等文件)

這些不需要經(jīng)過后臺處理的文件稱為靜態(tài)文件,否則動態(tài)文件。因此我們后臺處理忽略靜態(tài)文件。這會有人又說那我后臺忽略靜態(tài)文件不就完了嗎

當(dāng)然這是可以的,但是這樣后臺的請求次數(shù)就明顯增多了。在我們對資源的響應(yīng)速度有要求的時候,我們應(yīng)該使用這種動靜分離的策略去解決

動、靜分離將網(wǎng)站靜態(tài)資源(HTML,JavaScript,CSS,img等文件)與后臺應(yīng)用分開部署,提高用戶訪問靜態(tài)代碼的速度,降低對后臺應(yīng)用訪問

這里我們將靜態(tài)資源放到nginx中,動態(tài)資源轉(zhuǎn)發(fā)到tomcat服務(wù)器中

負(fù)載均衡

負(fù)載均衡即是代理服務(wù)器將接收的請求均衡的分發(fā)到各服務(wù)器中

負(fù)載均衡主要解決網(wǎng)絡(luò)擁塞問題,提高服務(wù)器響應(yīng)速度,服務(wù)就近提供,達(dá)到更好的訪問質(zhì)量,減少后臺服務(wù)器大并發(fā)壓力。

性能瓶頸可能出現(xiàn)在哪

  • CPU太弱

  • worker數(shù)量比CPU核心數(shù)大太多,導(dǎo)致頻繁上下文切換

  • 連接數(shù),包括最大連接數(shù),和當(dāng)前是否由太多連接占著茅坑不拉屎

  • 解決方案

    • CPU affinity

    • 提高連接數(shù)

    • 正確設(shè)置worker數(shù)

分享標(biāo)題:面試官常問的Nginx的那幾個問題?
路徑分享:http://www.rwnh.cn/article38/jgjepp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、用戶體驗(yàn)、網(wǎng)站維護(hù)、動態(tài)網(wǎng)站微信公眾號、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
皮山县| 丰城市| 和龙市| 西林县| 通河县| 扶沟县| 金溪县| 吐鲁番市| 三门峡市| 开原市| 新郑市| 郑州市| 格尔木市| 靖安县| 蒙自县| 洛浦县| 定西市| 北流市| 丽江市| 车致| 武乡县| 库车县| 宝鸡市| 上栗县| 松溪县| 漳州市| 长寿区| 凤庆县| 定边县| 武鸣县| 扎鲁特旗| 肥乡县| 和政县| 上杭县| 石家庄市| 连平县| 永川市| 措美县| 库车县| 新晃| 且末县|