日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx常见面试题及详细答案

發布時間:2023/12/10 Nginx 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx常见面试题及详细答案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文參考 嗨客網 Java 隨筆

前言

本章節記錄了一些常見的 Nginx 面試題及詳細答案,目錄如下:

文章目錄

  • 前言
    • Nginx優缺點
    • Nginx與Apache對比
      • 優點
      • 缺點
    • Nginx與Apache選擇
    • Apache
    • Nginx
    • Nginx使用場景
    • 正向代理與反向代理
    • 反向代理好處
    • Nginx有哪些特點
      • Nginx的特點
      • Nginx三大功能
    • Nginx master與worker進程
    • Nginx IO模型
    • Nginx多進程
    • Nginx驚群
    • Nginx處理HTTP請求過程
    • Nginx是如何實現高并發的
    • Nginx動靜分離
    • Nginx開啟gzip壓縮
    • Nginx動態添加模塊
    • Nginx解決跨域問題
    • Nginx 502錯誤原因和解決方法
    • Nginx負載均衡
    • Nginx rewrite全局變量
    • Nginx限制瀏覽器和爬蟲
      • Nginx限制爬蟲
      • Nginx限制瀏覽器訪問
    • Nginx限制IP訪問
    • Nginx限制IP訪問頻率
    • C10K問題
    • 漏桶算法和令牌桶算
    • 更多

?

Nginx優缺點

Nginx (engine x) 是一個高性能的 HTTP 和反向代理服務,也是一個 IMAP/POP3/SMTP 服務。Nginx 是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的 Rambler.ru 站點(俄文:Рамблер)開發的,第一個公開版本 0.1.0 發布于 2004 年10 月 4 日。

其將源代碼以類 BSD 許可證的形式發布,因它的穩定性、豐富的功能集、示例配置文件和低系統資源的消耗而聞名。2011 年 6 月 1 日,nginx 1.0.4 發布。

Nginx 是一款輕量級的 Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,并在一個 BSD-like 協議下發行。其特點是占有內存少,并發能力強,事實上 nginx 的并發能力確實在同類型的網頁服務器中表現較好,中國大陸使用 nginx 網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。

詳細說明:鏈接

?

Nginx與Apache對比

優點

  • 輕量級,采用 C 語言 進行編寫,同樣的 web 服務,會占用更少的內存及資源。
  • 抗并發,nginx 以 epoll and kqueue 作為開發模型,處理請求是異步非阻塞的,多個連接對應一個進程,負載能力比 apache 高很多,而 apache 則是同步多進程模型,只能一個連接對應一個進程,當壓力過大時,它是會被阻塞型的。
    在高并發下 nginx 能保持低資源低消耗高性能 ,而 apache 在 PHP 處理慢或者前端壓力很大的情況下,很容易出現進程數飆升,從而拒絕服務的現象。
  • 設計高度模塊化,編寫模塊相對簡單。
  • 配置簡潔,正則配置讓很多事情變得簡單,而且改完配置能使用 -t 測試配置有沒有問題,apache 配置復雜 ,重啟的時候發現配置出錯了,會很崩潰。
  • 一般用于處理靜態文件,靜態處理性能比 apache 高三倍以上。
  • 作為負載均衡服務器,支持 7 層負載均衡。
  • 本身就是一個反向代理服務器,而且可以作為非常優秀的郵件代理服務器。
  • nginx 啟動特別容易, 并且幾乎可以做到 7*24 不間斷運行,即使運行數個月也不需要重新啟動,支持熱部署,比如:實現不間斷服務的情況下進行軟件版本的升級與版本的回退。
  • 社區活躍,各種高性能模塊出品迅速。
  • 缺點

  • apache 的 rewrite 比 nginx 強大,在 rewrite 頻繁的情況下,用 apache。
  • apache 發展到現在,模塊超多,基本想到的都可以找到。
  • apache 更為成熟,少 bug ,nginx 的 bug 相對較多。
  • apache 超穩定,Nginx 一個進程死掉時,會影響到多個用戶的使用,穩定性差。
  • apache 對 PHP 支持比較簡單,nginx 需要配合其他后端用。
  • apache 在處理動態請求有優勢,nginx 在這方面是雞肋,一般動態請求要 apache 去做,nginx 適合靜態和反向。
  • apache 仍然是目前的主流,擁有豐富的特性,成熟的技術和開發社區。
  • ?

    Nginx與Apache選擇

    Apache

    ● apache 的 rewrite 比 nginx 強大,在 rewrite 頻繁的情況下,用 apache

    ● apache 發展到現在,模塊超多,基本想到的都可以找到

    ● apache 更為成熟,少 bug ,nginx 的 bug 相對較多

    ● apache 超穩定

    ● apache 對 PHP 支持比較簡單,nginx 需要配合其他后端用

    ● apache 在處理動態請求有優勢,nginx 在這方面是雞肋,一般動態請求要 apache 去做,nginx 適合靜態和反向。

    ● apache 仍然是目前的主流,擁有豐富的特性,成熟的技術和開發社區

    ?

    Nginx

    ● 輕量級,采用 C 語言 進行編寫,同樣的 web 服務,會占用更少的內存及資源

    ● 抗并發,nginx 以 epoll and kqueue 作為開發模型,處理請求是異步非阻塞的,負載能力比 apache 高很多,而 apache 則是阻塞型的。在高并發下 nginx 能保持低資源低消耗高性能 ,而 apache 在 PHP 處理慢或者前端壓力很大的情況下,很容易出現進程數飆升,從而拒絕服務的現象。

    ● nginx 處理靜態文件好,靜態處理性能比 apache 高三倍以上

    ● nginx 的設計高度模塊化,編寫模塊相對簡單

    ● nginx 配置簡潔,正則配置讓很多事情變得簡單,而且改完配置能使用 -t 測試配置有沒有問題,apache 配置復雜 ,重啟的時候發現配置出錯了,會很崩潰

    ● nginx 作為負載均衡服務器,支持 7 層負載均衡

    ● nginx 本身就是一個反向代理服務器,而且可以作為非常優秀的郵件代理服務器

    ● 啟動特別容易, 并且幾乎可以做到 7*24 不間斷運行,即使運行數個月也不需要重新啟動,還能夠不間斷服務的情況下進行軟件版本的升級

    ● 社區活躍,各種高性能模塊出品迅速

    ?

    Nginx使用場景

    Nginx 的常用使用場景包括 HTTP 服務器、靜態服務器、反向代理、負載均衡、動靜分離、統一訪問入口、解決瀏覽器跨域問題和行為分析等。

    詳細說明:鏈接

    ?

    正向代理與反向代理

    代理其實就是一個中介,A 和 B 本來可以直連,中間插入一個 C,C 就是中介。剛開始的時候,代理多數是幫助內網 client 訪問外網 server 用的。

    后來出現了反向代理,“反向” 這個詞在這兒的意思其實是指方向相反,即代理將來自外網客戶端的請求轉發到內網服務器,從外到內。

    詳細說明:鏈接

    ?

    反向代理好處

  • 保護了真實的 web 服務器,web 服務器對外不可見,外網只能看到反向代理服務器,而反向代理服務器上并沒有真實數據,因此,保證了 web 服務器的資源安全。
  • 反向代理為基礎產生了動靜資源分離以及負載均衡的方式,減輕 web 服務器的負擔,加速了對網站訪問速度。
  • 節約了有限的 IP 地址資源,企業內所有的網站共享一個在 internet 中注冊的IP地址,這些服務器分配私有地址,采用虛擬主機的方式對外提供服務。
  • 詳細說明:鏈接

    ?

    Nginx有哪些特點

    Nginx的特點

    • 熱部署

    • 可以高并發連接

    • 低的內存消耗

    • 處理響應請求很快

    • 具有很高的可靠性

    Nginx三大功能

    • 反向代理
    • 負載均衡
    • 動靜分離

    詳細說明:鏈接

    ?

    Nginx master與worker進程

  • Nginx 啟動后,會產生一個 master 主進程,主進程執行一系列的工作后會產生一個或者多個工作進程 worker。
  • 在客戶端請求動態站點的過程中,Nginx 服務器還涉及和后端服務器的通信。Nginx 將接收到的 Web 請求通過代理轉發到后端服務器,由后端服務器進行數據處理和組織。
  • Nginx 為了提高對請求的響應效率,降低網絡壓力,采用了緩存機制,將歷史應答數據緩存到本地。保障對緩存文件的快速訪問。
  • 詳細說明:鏈接

    ?

    Nginx IO模型

    Nginx 支持多種并發模型,并發模型的具體實現根據系統平臺而有所不同。在支持多種并發模型的平臺上,Nginx 自動選擇最高效的模型。但我們也可以使用 use 指令在配置文件中顯式地定義某個并發模型。

    詳細說明:鏈接

    ?

    Nginx多進程

    Nginx 是通過基于異步及非阻塞的事件驅動模型和多進程機制實現高性能的。

    詳細說明:鏈接

    ?

    Nginx驚群

    驚群效應(thundering herd)是指多進程(多線程)在同時阻塞等待同一個事件的時候(休眠狀態),如果等待的這個事件發生,那么他就會喚醒等待的所有進程(或者線程),但是最終卻只能有一個進程(線程)獲得這個時間的 “控制權”,對該事件進行處理,而其他進程(線程)獲取 “控制權” 失敗,只能重新進入休眠狀態,這種現象和性能浪費就叫做驚群效應。

    詳細說明:鏈接

    ?

    Nginx處理HTTP請求過程

    Nginx 處理 HTTP 請求的過程大概可以分為 11 個階段,如下:

  • Read Request Headers:解析請求頭。
  • Identify Configuration Block:識別由哪一個 location 進行處理,匹配 URL。
  • Apply Rate Limits:判斷是否限速。例如可能這個請求并發的連接數太多超過了限制,或者 QPS 太高。
  • Perform Authentication:連接控制,驗證請求。例如可能根據 Referrer 頭部做一些防盜鏈的設置,或者驗證用戶的權限。
  • Generate Content:生成返回給用戶的響應。為了生成這個響應,做反向代理的時候可能會和上游服務(Upstream Services)進行通信,然后這個過程中還可能會有些子請求或者重定向,那么還會走一下這個過程(Internal redirects and subrequests)。
  • Response Filters:過濾返回給用戶的響應。比如壓縮響應,或者對圖片進行處理。
  • Log:記錄日志。
  • 以上這七個步驟從整體上介紹了一下處理流程,下面還會再說一下實際的處理過程。

    詳細說明:鏈接

    ?

    Nginx是如何實現高并發的

    如果一個 server 采用一個進程(或者線程)負責一個 request 的方式,那么進程數就是并發數。那么顯而易見的,就是會有很多進程在等待中。等什么?最多的應該是等待網絡傳輸。其缺點胖友應該也感覺到了,此處不述。

    Nginx 的異步非阻塞工作方式正是利用了這點等待的時間。在需要等待的時候,這些進程就空閑出來待命了。因此表現為少數幾個進程就解決了大量的并發問題。

    Nginx 是如何利用的呢,簡單來說:同樣的 4 個進程,如果采用一個進程負責一個 request 的方式,那么,同時進來 4 個 request 之后,每個進程就負責其中一個,直至會話關閉。期間,如果有第 5 個 request 進來了。就無法及時反應了,因為 4 個進程都沒干完活呢,因此,一般有個調度進程,每當新進來了一個 request ,就新開個進程來處理。

    詳細說明:鏈接

    ?

    Nginx動靜分離

    動靜分離是讓動態網站里的動態網頁根據一定規則把不變的資源和經常變的資源區分開來,動靜資源做好了拆分以后,我們就可以根據靜態資源的特點將其做緩存操作,這就是網站靜態化處理的核心思路,實際上,何謂動?何謂靜呢?拿我們 Java 來說 jsp、servlet 等就是動,因為他們離開我們的 web 服務器的支持就會無法正常工作。而 js、css 等文件就是靜了。因為離開 web 服務器他一樣能正常的工作。

    詳細說明:鏈接

    ?

    Nginx開啟gzip壓縮

    Nginx 開啟 Gzip 壓縮功能, 可以使網站的 css、js 、xml、html 文件在傳輸時進行壓縮,提高訪問速度, 進而優化 Nginx 性能。

    網站加載的速度取決于瀏覽器必須下載的所有文件的大小。減少要傳輸的文件的大小可以使網站不僅加載更快,而且對于那些寬帶是按量計費的人來說也更友好。

    gzip 是一種流行的數據壓縮程序。您可以使用 gzip 壓縮 Nginx 實時文件。這些文件在檢索時由支持它的瀏覽器解壓縮,好處是 web 服務器和瀏覽器之間傳輸的數據量更小,速度更快。

    gzip 不一定適用于所有文件的壓縮。例如,文本文件壓縮得非常好,通常會縮小兩倍以上。另一方面,諸如 JPEG或 PNG 文件之類的圖像已經按其性質進行壓縮,使用 gzip 壓縮很難有好的壓縮效果或者甚至沒有效果。壓縮文件會占用服務器資源,因此最好只壓縮那些壓縮效果好的文件。

    詳細說明:鏈接

    ?

    Nginx動態添加模塊

    很多時候,我們根據當時的項目情況和業務需求安裝完 Nginx 后,后續隨著業務的發展,往往會給安裝好的 Nginx 添加其他的功能模塊。在為 Nginx 添加功能模塊時,要求 Nginx 不停機。

    這就涉及到如何為已安裝的 Nginx 動態添加模塊的問題。本文,就和小伙伴們一起探討如何為已安裝的 Nginx 動態添加模塊的問題。

    詳細說明:鏈接

    ?

    Nginx解決跨域問題

    跨域是前端開發中經常會遇到的問題,前端調用后臺服務時,通常會遇到 No ‘Access-Control-Allow-Origin’ header is present on the requested resource 的錯誤,這是因為瀏覽器的同源策略拒絕了我們的請求。

    所謂同源是指,域名,協議,端口相同,瀏覽器執行一個腳本時同源的腳本才會被執行。如果非同源,那么在請求數據時,瀏覽器會在控制臺中報一個異常,提示拒絕訪問。這個問題我們通常會使用 CORS(跨源資源共享)或者 JSONP 去解決,這兩種方法也是使用較多的方法。

    詳細說明:鏈接

    ?

    Nginx 502錯誤原因和解決方法

    不管你是做運維還是做開發,哪怕你是游客,時不時會遇到 502 Bad Gateway 或 504 Gateway Time-out。出現這頁面,把服務重啟下,再實在不行重啟下服務器,問題就解決了,特殊情況請繼續閱讀。

    詳細說明:鏈接

    ?

    Nginx負載均衡

    在服務器集群中,Nginx 起到一個代理服務器的角色(即反向代理),為了避免單獨一個服務器壓力過大,將來自用戶的請求轉發給不同的服務器。

    詳細說明:鏈接

    ?

    Nginx rewrite全局變量

    Nginx rewrite 常用的全局變量如下:

    變量說明
    $args存放了請求 url 中的請求指令。比如 http://www.myweb.name/server/source?arg1=value1&arg2=value2 中的arg1=value1&arg2=value2
    $content_length存放請求頭中的 Content-length 字段
    $content_type存放了請求頭中的 Content-type 字段
    $document_root存放了針對當前請求的根路徑
    $document_uri請求中的 uri,不包含請求指令 ,比如比如 http://www.myweb.name/server/source?arg1=value1&arg2=value2 中的 /server/source
    $host存放了請求 url 中的主機字段,比如 http://www.myweb.name/server/source?arg1=value1&arg2=value2 中的 www.myweb.name。如果請求中的主機部分字段不可用或者為空,則存放 nginx 配置中該 server 塊中 server_name 指令的配置值
    $http_user_agent存放客戶端的代理
    $http_cookiecookie
    $limit_ratenginx 配置中 limit_rate 指令的配置值
    $remote_addr客戶端的地址
    $remote_port客戶端與服務器端建立連接的端口號
    $remote_user變量中存放了客戶端的用戶名
    $request_body_file存放了發給后端服務器的本地文件資源的名稱
    $request_method存放了客戶端的請求方式,如 get,post 等
    $request_filename存放當前請求的資源文件的路徑名
    $requset_uri當前請求的 uri,并且帶有指令
    $query_string$args含義相同
    $scheme客戶端請求使用的協議,如 http, https, ftp 等
    $server_protocol客戶端請求協議的版本,如 ”HTTP/1.0”, ”HTTP/1.1”
    $server_addr服務器的地址
    $server_name客戶端請求到達的服務器的名稱
    $server_port客戶端請求到達的服務器的端口號
    $uri同 $document_uri

    詳細說明:鏈接

    ?

    Nginx限制瀏覽器和爬蟲

    Nginx限制爬蟲

    修改 nginx.conf,禁止網絡爬蟲的 ua,返回 403,具體配置如下:

    server{listen 80;server_name 127.0.0.1; # 添加如下內容即可防止爬蟲if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") {return 403;} }

    Nginx限制瀏覽器訪問

    限制瀏覽器訪問:

    if ($http_user_agent ~* "Firefox|MSIE") {return 403; }

    詳細說明:鏈接

    ?

    Nginx限制IP訪問

    有時候我們需要針對屏蔽某些惡意的 IP 訪問我們的網站,或者限制僅僅某些白名單 IP 才能訪問我們的網站。這時候我們就可以在 Nginx 中通過簡單的配置來達到目的。

    詳細說明:鏈接

    ?

    Nginx限制IP訪問頻率

    詳細說明:鏈接

    ?

    C10K問題

    所謂 c10k 問題,指的是服務器如何支持 10k 個并發連接,也就是 concurrent 10000 connection(這也是 c10k 這個名字的由來)。

    由于硬件成本的大幅度降低和硬件技術的進步,如果一臺服務器能夠同時服務更多的客戶端,那么也就意味著服務每一個客戶端的成本大幅度降低。從這個角度來看,c10k 問題顯得非常有意義。

    詳細說明:鏈接

    ?

    漏桶算法和令牌桶算

    每一個對外提供的 API 接口都是需要做流量控制的,不然會導致系統直接崩潰。很簡單的例子,和保險絲的原理一樣,如果用電符合超載就會燒斷保險絲斷掉電源以達到保護的作用。API 限流的意義也是如此,如果 API 上的流量請求超過核定的數值我們就得對請求進行引流或者直接拒絕等操作。

    既然要限流,就得提到限流算法了,一般有漏桶算法和令牌桶算法兩種限流算法。

    詳細說明:鏈接

    ?

    更多

    原文大綱: 鏈接

    更多文章,可以關注下方公眾號:

    總結

    以上是生活随笔為你收集整理的Nginx常见面试题及详细答案的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日夜夜操 | 精品久久久久久中文字幕人妻最新 | 欧美亚洲色图视频 | 性开放网站 | 玖玖玖精品| 首尔之春在线看 | 91精品在线观看入口 | 成人av视屏 | 91精品久久久久久久久中文字幕 | 国产精品国产三级国产 | 欧美日韩综合一区二区三区 | 好吊色一区二区三区 | wwww在线观看 | 男女午夜网站 | 蜜臀av88 | 中文字幕在线观看一区二区 | 免费av大片 | youjizz少妇| 亚洲色图日韩 | 亚洲激情图片 | 国产精品一区二区三区四区五区 | 国模精品一区二区三区 | www.中文字幕av | 在线成人小视频 | 俄罗斯厕所偷拍 | 亚洲欧美日韩综合一区二区 | 五月在线| 国产第一毛片 | 成人一级片在线观看 | 黄色污污网站在线观看 | 午夜激情影视 | 波多野结衣视频免费在线观看 | 少妇又白又嫩又色又粗 | 日本免费一区二区三区四区 | 久久久久九九 | 午夜天堂av | 国产精品99久久久久久一二区 | 国产视频成人 | 亚洲精品久久久久久久久久久 | av毛片在线播放 | 五月天天 | 免费成人精品 | 无码国产69精品久久久久同性 | 一级黄大片 | 男女羞羞的视频 | 日本少妇作爱视频 | 国产精品27p | 2023毛片| 毛片黄片免费看 | 网站av在线| 亚洲av无码潮喷在线观看 | 欧美日韩四区 | 91丨国产丨捆绑调教 | 成人99视频| 三年大片在线观看 | 亚洲精品久久久 | 国产交换配乱淫视频免费 | 日韩视频欧美视频 | 天天摸夜夜添狠狠添婷婷 | 久久91视频| 国产日韩精品suv | 国产999精品 | 黄色a级片视频 | 午夜欧美精品 | 超碰按摩| 亚洲老女人av | 色婷婷91 | 隔壁人妻偷人bd中字 | 人体av | 国产精品婷婷午夜在线观看 | 日韩成年视频 | 久久久久人妻一道无码AV | 亚洲精品3| 中文字幕在线观看精品 | 国产91精品在线观看 | 伊人网在线播放 | 一区二区福利视频 | 午夜偷拍福利视频 | 无码免费一区二区三区免费播放 | 中出av在线| 一级黄色片免费观看 | 久热免费视频 | 那里有毛片看 | 日本中出视频 | 欧美男人的天堂 | 国产精品海角社区 | 黄频在线免费观看 | 国产欧美精品一区二区三区app | 成人av福利 | 亚洲九九 | 男女国产精品 | 青青草一区二区三区 | 国产ts在线播放 | 激情小说亚洲图片 | 少妇高潮一区二区三区99刮毛 | 国产午夜福利在线播放 | 中文字幕精品在线 | 涩涩网站免费 | 久久国产日韩欧美 |