Nginx 面試中最常見的18道題,建議收藏
點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號(hào)”
優(yōu)質(zhì)文章,第一時(shí)間送達(dá)
Nginx的并發(fā)能力在同類型網(wǎng)頁(yè)服務(wù)器中的表現(xiàn),相對(duì)而言是比較好的,因此受到了很多企業(yè)的青睞,我國(guó)使用Nginx網(wǎng)站的知名用戶包括騰訊、淘寶、百度、京東、新浪、網(wǎng)易等等。Nginx是網(wǎng)頁(yè)服務(wù)器運(yùn)維人員必備技能之一,下面為大家整理了一些比較常見的Nginx相關(guān)面試題,僅供參考:
1、請(qǐng)解釋一下什么是Nginx?
Nginx是一個(gè)web服務(wù)器和反向代理服務(wù)器,用于HTTP、HTTPS、SMTP、POP3和IMAP協(xié)議。
2、請(qǐng)列舉Nginx的一些特性。
Nginx服務(wù)器的特性包括:
反向代理/L7負(fù)載均衡器
嵌入式Perl解釋器
動(dòng)態(tài)二進(jìn)制升級(jí)
可用于重新編寫URL,具有非常好的PCRE支持
3、請(qǐng)列舉Nginx和Apache 之間的不同點(diǎn)。

4、請(qǐng)解釋Nginx如何處理HTTP請(qǐng)求。
Nginx使用反應(yīng)器模式。主事件循環(huán)等待操作系統(tǒng)發(fā)出準(zhǔn)備事件的信號(hào),這樣數(shù)據(jù)就可以從套接字讀取,在該實(shí)例中讀取到緩沖區(qū)并進(jìn)行處理。單個(gè)線程可以提供數(shù)萬(wàn)個(gè)并發(fā)連接。
5、在Nginx中,如何使用未定義的服務(wù)器名稱來(lái)阻止處理請(qǐng)求?
只需將請(qǐng)求刪除的服務(wù)器就可以定義為:
Server {
listen 80;
server_name “ “ ;
return 444;
}
這里,服務(wù)器名被保留為一個(gè)空字符串,它將在沒(méi)有“主機(jī)”頭字段的情況下匹配請(qǐng)求,而一個(gè)特殊的Nginx的非標(biāo)準(zhǔn)代碼444被返回,從而終止連接。
6、 使用“反向代理服務(wù)器”的優(yōu)點(diǎn)是什么?
反向代理服務(wù)器可以隱藏源服務(wù)器的存在和特征。它充當(dāng)互聯(lián)網(wǎng)云和web服務(wù)器之間的中間層。這對(duì)于安全方面來(lái)說(shuō)是很好的,特別是當(dāng)您使用web托管服務(wù)時(shí)。
7、請(qǐng)列舉Nginx服務(wù)器的最佳用途。
Nginx服務(wù)器的最佳用法是在網(wǎng)絡(luò)上部署動(dòng)態(tài)HTTP內(nèi)容,使用SCGI、WSGI應(yīng)用程序服務(wù)器、用于腳本的FastCGI處理程序。它還可以作為負(fù)載均衡器。
8、請(qǐng)解釋Nginx服務(wù)器上的Master和Worker進(jìn)程分別是什么?
Master進(jìn)程:讀取及評(píng)估配置和維持
Worker進(jìn)程:處理請(qǐng)求
9、請(qǐng)解釋你如何通過(guò)不同于80的端口開啟Nginx?
為了通過(guò)一個(gè)不同的端口開啟Nginx,你必須進(jìn)入/etc/Nginx/sites-enabled/,如果這是默認(rèn)文件,那么你必須打開名為“default”的文件。編輯文件,并放置在你想要的端口:
Like server { listen 81; }
10、請(qǐng)解釋是否有可能將Nginx的錯(cuò)誤替換為502錯(cuò)誤、503?
502 =錯(cuò)誤網(wǎng)關(guān)
503 =服務(wù)器超載
有可能,但是您可以確保fastcgi_intercept_errors被設(shè)置為ON,并使用錯(cuò)誤頁(yè)面指令。
Location / {
fastcgi_pass 127.0.01:9001;
fastcgi_intercept_errors on;
error_page 502 =503/error_page.html;
#…
}
11、在Nginx中,解釋如何在URL中保留雙斜線?
要在URL中保留雙斜線,就必須使用merge_slashes_off;
語(yǔ)法:merge_slashes [on/off]
默認(rèn)值: merge_slashes on
環(huán)境: http,server
12、請(qǐng)解釋ngx_http_upstream_module的作用是什么?
ngx_http_upstream_module用于定義可通過(guò)fastcgi傳遞、proxy傳遞、uwsgi傳遞、memcached傳遞和scgi傳遞指令來(lái)引用的服務(wù)器組。
13、請(qǐng)解釋什么是C10K問(wèn)題?
C10K問(wèn)題是指無(wú)法同時(shí)處理大量客戶端(10,000)的網(wǎng)絡(luò)套接字。
14、請(qǐng)陳述stub_status和sub_filter指令的作用是什么?
Stub_status指令:該指令用于了解Nginx當(dāng)前狀態(tài)的當(dāng)前狀態(tài),如當(dāng)前的活動(dòng)連接,接受和處理當(dāng)前讀/寫/等待連接的總數(shù)
Sub_filter指令:它用于搜索和替換響應(yīng)中的內(nèi)容,并快速修復(fù)陳舊的數(shù)據(jù)
15、解釋Nginx是否支持將請(qǐng)求壓縮到上游?
您可以使用Nginx模塊gunzip將請(qǐng)求壓縮到上游。gunzip模塊是一個(gè)過(guò)濾器,它可以對(duì)不支持“gzip”編碼方法的客戶機(jī)或服務(wù)器使用“內(nèi)容編碼:gzip”來(lái)解壓縮響應(yīng)。
16、解釋如何在Nginx中獲得當(dāng)前的時(shí)間?
要獲得Nginx的當(dāng)前時(shí)間,必須使用SSI模塊、$date_gmt和$date_local的變量。
Proxy_set_header THE-TIME $date_gmt;
17、用Nginx服務(wù)器解釋-s的目的是什么?
用于運(yùn)行Nginx -s參數(shù)的可執(zhí)行文件。
18、解釋如何在Nginx服務(wù)器上添加模塊?
在編譯過(guò)程中,必須選擇Nginx模塊,因?yàn)?code style="font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-size: 14px;color: rgb(232, 62, 140);">Nginx不支持模塊的運(yùn)行時(shí)間選擇。
作者 | CodeMan
來(lái)源 | segmentfault.com/a/1190000010677483

