什麼是Nginx?Nginx面試一般都會問哪些專業的問題呢?

2021-01-10 北大青鳥鹽城思騰校區

最近,有位朋友向小青諮詢:「什麼是Nginx?,面試的時候一般都會問哪些專業的問題呢?」,但說實話,我對Nginx的了解處於小白的階段。所以,小青不得不向同事以及度娘請教,今天就將我請教的成果整理如下,希望能夠幫助到大家哦!

1、什麼是Nginx

Nginx (engine x) 是一個高性能的HTTP和反向代理web伺服器,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網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。

2、為什麼要用Nginx

跨平臺、配置簡單、方向代理、高並發連接:處理2-3萬並發連接數,官方監測能支持5萬並發,內存消耗小:開啟10個nginx才佔150M內存 ,nginx處理靜態文件好,耗費內存少,

而且Nginx內置的健康檢查功能:如果有一個伺服器宕機,會做一個健康檢查,再發送的請求就不會發送到宕機的伺服器了。重新將請求提交到其他的節點上。

使用Nginx的話還能:

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

穩定性高:宕機的概率非常小

接收用戶請求是異步的

3、為什麼Nginx性能這麼高

因為他的事件處理機制:異步非阻塞事件處理機制:運用了epoll模型,提供了一個隊列,排隊解決

4.Nginx怎麼處理請求的

nginx接收一個請求後,首先由listen和server_name指令匹配server模塊,再匹配server模塊裡的location,location就是實際地址

5.什麼是正向代理和反向代理

1、正向代理就是一個人發送一個請求直接就到達了目標的伺服器

2、反方代理就是請求統一被Nginx接收,nginx反向代理伺服器接收到之後,按照一定的規 則分發給了後端的業務處理伺服器進行處理了

6.使用「反向代理伺服器的優點是什麼?

反向代理伺服器可以隱藏源伺服器的存在和特徵。它充當網際網路雲和web伺服器之間的中間層。這對於安全方面來說是很好的,特別是當您使用web託管服務時。

7.Nginx的優缺點

優點:

1.佔內存小,可實現高並發連接,處理響應快

2.可實現http伺服器、虛擬主機、方向代理、負載均衡

3.Nginx配置簡單

4.可以不暴露正式的伺服器IP位址

缺點:

動態處理差:nginx處理靜態文件好,耗費內存少,但是處理動態頁面則很雞肋,現在一般前端用nginx作為反向代理抗住壓力,

8.如何用Nginx解決前端跨域問題?

使用Nginx轉發請求。把跨域的接口寫成調本域的接口,然後將這些接口轉發到真正的請求地址。

9 .限流怎麼做的,算法是什麼,(限制請求速度)

Nginx限流就是限制用戶請求速度,防止伺服器受不了

限流有3種,我這隻寫了最平常的一種(限制訪問頻率(正常流量))

1、限制訪問頻率(正常流量)

2、限制訪問頻率(突發流量)

3、限制並發連接數

1、限制訪問頻率(正常流量):限制一個用戶發送的請求,我Nginx多久接收一個。

#定義限流維度,一個用戶一分鐘一個請求進來,多餘的全部漏掉

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/m;

#綁定限流維度

server{

location/seckill.html{

limit_req zone=one

proxy_pass http://lj_seckill;

}

}

1r/s代表1秒一個請求 1r/m一分鐘接收一個請求

(此流也叫做漏桶流,多餘的請求全部不要,漏掉)

10.為什麼要做動靜分離?

Nginx是當下最熱的Web容器,網站優化的重要點在於靜態化網站,網站靜態化的關鍵點則是是動靜分離,動靜分離是讓動態網站裡的動態網頁根據一定規則把不變的資源和經常變的資源區分開來,動靜資源做好了拆分以後,我們則根據靜態資源的特點將其做緩存操作。

讓靜態的資源只走靜態資源伺服器,動態的走動態的伺服器

Nginx的靜態處理能力很強,但是動態處理能力不足,因此,在企業中常用動靜分離技術。

對於靜態資源比如圖片,js,css等文件,我們則在反向代理伺服器nginx中進行緩存。這樣瀏覽器在請求一個靜態資源時,代理伺服器nginx就可以直接處理,無需將請求轉發給後端伺服器tomcat。

若用戶請求的動態文件,比如servlet,jsp則轉發給Tomcat伺服器處理,從而實現動靜分離。這也是反向代理伺服器的一個重要的作用。

相關焦點

  • 盤點那些被面試官問爛的Nginx面試題
    什麼是Nginx?Nginx是一個 輕量級/高性能的反向代理Web伺服器,他實現非常高效的反向代理、負載平衡,他可以處理2-3萬並發連接數,官方監測能支持5萬並發,現在中國使用nginx網站用戶有很多,例如:新浪、網易、 騰訊等。
  • 前端面試:加分項之 Nginx 反向代理與負載均衡
    雖然看起來是一個玩笑的issue,但卻道出了前端們不得不表現出來的疲態,知識點越來越龐大,學習的內容越來越多也聽到一些朋友們說,換成現在再面試阿里,恐怕不好進了啊。當然很多都是隨便一說的玩笑話,聽過一笑便可,不必當真,也不必抱怨了好了,今天就直接來說一下主題吧,前端要了解一些運維的Nginx用法,內容不多,簡單看看就好,這兩個功能在工作當中就夠用了,那麼首先來看個問題,什麼是反向代理與負載均衡什麼是反向代理與負載均衡什麼是反向代理
  • 面試被問 I/O到自閉?吃透Netty+Nginx+Redis三份PDF,吊打面試官
    面試官愛問的Netty面試題!  Netty高性能體現在哪些方面?Netty的線程模型是怎麼樣的?Netty的零拷貝提體現在哪裡,與作業系統上的有什麼區別?Netty的內存池是怎麼實現的?Netty的對象池是怎麼實現的?在實際項目中,你們是怎麼使用Netty的?使用過Netty遇到過什麼問題?  當你在學習這份文檔的時候,個人建議是不要死記硬背,把關鍵點標識出來,理解通透,做下筆記,以後一定會用到的!
  • 上帝視角——面試官常問的nginx的幾個問題
    無聊科普下關於nginx會問哪些問題。其實沒啥好問的。Nginx基本就會問下面這些問題問題1:Nginx是用來幹嘛的?Nginx是一個高性能的HTTP和反向代理伺服器,這個基本是用來前端伺服器集群後做負載均衡和動靜分離用的問題2:負載均衡的幾種常用方式?1、輪詢(默認) 2、weight ,即指定輪詢機率,weight和訪問比率成正比,用於後端伺服器性能不均的 情況。
  • 探討:Nginx到底能做什麼?
    探討:Nginx到底能做什麼? 隨著現在軟體行業分工的細化,研發同學更關注研發的功能,對一些常見的運維部署不是那麼熟悉,例如常常用到的nginx、docker等等。
  • NGINX就業教程
    此時大家可能都會用一個操作 FQ 進行訪問,FQ 的方式主要是找到一個可以訪問國外網站的代理伺服器,我們將請求發送給代理伺服器,代理伺服器去訪問國外的網站,然後將訪問到的數據傳遞給我們!相信很多人都聽過nginx,這個小巧的東西慢慢地在吞食apache和IIS的份額。那究竟它有什麼作用呢?可能很多人未必了解。說到反向代理,可能很多人都聽說,但具體什麼是反向代理,很多人估計就不清楚了。
  • Docker 安裝 Nginx
    但是在自己項目中不一定都會用到,為了學習,經常會在自己的電腦上安裝虛擬機,然後把這些工具安裝到虛擬機上,再抽出時間來學習、研究。但是由於下載麻煩並且還會涉及版本的問題,以及下載源都是英文的,下載非常的不方便。現在我們會簡單的使用docker,這些問題就迎刃而解了。
  • nginx 伺服器的安裝和配置
    nginx能做什麼 ?像之前部署前端靜態資源一般都選擇 apache,現在選擇 nginx,那 nginx 都能做什麼呢?nginx 的主配置文件一般是不需要動的,我們只需要在 /etc/nginx/conf.d 目錄下新建自己的配置文件即可,因為在主配置文件 /etc/nginx/nginx.conf 文件的最後有這麼一句 include /etc/nginx/conf.d/*.conf;,會自動將 conf.d 目錄下的配置文件引入如果 nginx 出現 403 提示權限不夠的情況,一般是主配置文件的 user
  • nginx詳解
    抗並發,nginx 處理請求是異步非阻塞的,而apache 則是阻塞型的,在高並發下nginx 能保持低資源低消耗高性能     3.模塊超多,基本想到的都可以找到二、nginx正向代理 & 反向代理1、正向代理   1. 我訪問不了某網站,但是我能訪問一個代理伺服器,這個代理伺服器呢,他能訪問那個我不能訪問的網站   2. 於是我先連上代理伺服器,告訴他我需要那個無法訪問網站的內容,代理伺服器去取回來,然後返回給我。
  • 怒補了一周Nginx,各位隨便問
    一、nginx 簡介什麼是 Nginx?charset 設置為 charset utf-8,gbk;,可以避免中文亂碼問題(windows 伺服器下設置後,依然亂碼,本人暫時沒有找到解決方法)。各自獨立的 web app 在互相訪問時,勢必存在跨域問題。
  • Nginx《深入了解Nginx:模塊開發與架構分析》
    缺點:存在跨域問題,所有的html全靠ajax請求來請求接口,後端域名和前端不一致導致跨域問題。解決:1、在nginx中把注釋掉的放開;2、將tomcat的所有接口配置成域名跨域訪問(這個東西個人建議可以在tomcat中寫個攔截器進行攔截,然後統一處理)。
  • Nginx反向代理教程
    Nginx什麼是nginxNginx (engine x) 是一個高性能的HTTP和反向代理服務,也是一個IMAP/POP3/SMTP服務。搭建圖片伺服器傳統項目一般實現圖片上傳的話,都會在tomcat下面建立一個圖片文件夾,上傳成功後,用戶可以直接訪問,http://ip:port/project/images/xxx.jpg;這樣在用戶量少的時候是沒有問題的
  • Docker 之深交Nginx
    在使用Docker的時候呀,我們通常都是使用後臺的方式去運行容器的,但是呢,有的時候也需要我們去進入容器,修改一些配置,比如說nginx的配置文件啦,tomcat的配置文件啦。這節呢就主要介紹一下如何進入到啟動的容器內部,如修改我們需要修改的配置!
  • Nginx實戰001:Window中配置使用Nginx入門
    什麼是NginxNginx是一款靈活、穩定、高效、低消耗的輕量級Web伺服器,支持HTTP和反向代理及電子郵件(IMAP/POP3/SMTP)等服務。具體的配置按照自己的項目需求進行修改,一般我們都在server中進行配置(一個server代表一個服務站點,可以配置多個server節點搭建多個站點)。我這裡主要修改了監聽埠、代理地址和跨域設置,方便進行功能測試。
  • 教你快速地在 Linux 上安裝與配置Nginx
    openssl openssl--devel pcre pcre-devel 如果已安裝,則remove掉yum remove nginx下載nginx:wget https://nginx.org/download/nginx-1.11.3.tar.gz3、我們一般安裝linux軟體都會在/usr/local目錄下,然後進行解壓編譯安裝:
  • nginx之負載均衡
    一、nginx概述在很多的大型網站都是用nginx來進行服務代理,那麼nginx究竟是什麼,有什麼作用呢?例如:當我們想去訪問國外的某些網站,此時你會發現位於國外的某網站我們通過瀏覽器是沒有辦法訪問的,此時大家可能都會用一個操作FQ進行訪問,FQ的方式主要是找到一個可以訪問國外網站的代理伺服器,我們將請求發送給代理伺服器,代理伺服器去訪問國外的網站,然後將訪問到的數據傳遞給我們!2.反向代理 反向代理和正向代理的區別就是:正向代理代理客戶端,反向代理代理伺服器。
  • 什麼是Nginx驚群問題?如何解決它?
    對於nginx的驚群問題,我們首先需要理解的是,在nginx啟動過程中,master進程會監聽配置文件中指定的各個埠,然後master進程就會調用fork()方法創建各個子進程,根據進程的工作原理,子進程是會繼承父進程的全部內存數據以及監聽的埠的,也就是說worker進程在啟動之後也是會監聽各個埠的
  • nginx會話保持與防盜鏈
    upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com down;}ip_hash簡單易用,但有如下問題
  • 利用nginx搭建RTMP視頻點播、直播、HLS伺服器
    音視頻 流媒體 webrtc ffmpeg Linux c++ 《各大廠面試題 內部資料 》等。。。配置並編譯nginx使用nginx的默認配置,添加nginx的rtmp模塊。還等什麼讓我們推送一個節目看看(其實專業詞叫錄製,後面將會使用錄製這個詞。)吧。
  • nginx-quic:NGINX官方QUIC和HTTP/3技術預覽版
    最近Nginx官方推出了一個預覽版nginx-quic以支持全新的QUIC+HTTP/3傳輸協議。nginx-quic基於IETF QUIC草案,在Nginx開發分支中維護,與穩定分支和幹線分支隔離。經過幾個月緊張開發的,現在發布測試預覽版,發布公測,以對其互操作性測試,問題反饋和社區代碼貢獻。