Nginx面試寶典

2022-08-10 02:57:07 字數 2563 閱讀 6355

1.nginx常用命令

啟動nginx ./sbin/nginx

停止nginx ./sbin/nginx -s stop ./sbin/nginx -s quit

過載配置 ./sbin/nginx -s reload(平滑重啟) service nginx reload

過載指定配置檔案 ./sbin/nginx -c /usr/local/nginx/conf/nginx.conf

檢視nginx版本 ./sbin/nginx -v

檢查配置檔案是否正確 ./sbin/nginx -t

顯示幫助資訊 ./sbin/nginx -h

2.nginx狀態碼

499:服務端處理時間過長,客戶端主動關閉了連線。

3.nginx是如何實現高併發的

乙個主程序,多個工作程序,每個工作程序可以處理多個請求

每進來乙個request,會有乙個worker程序去處理。但不是全程的處理,處理到可能發生阻塞的地方,比如向上游(後端)伺服器**request,並等待請求返回。那麼,這個處理的worker繼續處理其他請求,而一旦上游伺服器返回了,就會觸發這個事件,worker才會來接手,這個request才會接著往下走。

由於web server的工作性質決定了每個request的大部份生命都是在網路傳輸中,實際上花費在server機器上的時間片不多。這是幾個程序就解決高併發的秘密所在。即@skoo所說的webserver剛好屬於網路io密集型應用,不算是計算密集型。

4.nginx功能

作為http server(代替apache,對php需要fastcgi處理器支援)

反向**伺服器

實現負載均衡

虛擬主機

fastcgi:nginx本身不支援php等語言,但是它可以通過fastcgi來將請求扔給某些語言或框架處理

5.502錯誤可能原因

(1).fastcgi程序是否已經啟動

(2).fastcgi worker程序數是否不夠

(3).fastcgi執行時間過長

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

(4).fastcgi buffer不夠

nginx和apache一樣,有前端緩衝限制,可以調整緩衝引數

fastcgi_buffer_size 32k;

fastcgi_buffers 8 32k;

(5). proxy buffer不夠

如果你用了proxying,調整

proxy_buffer_size 16k;

proxy_buffers 4 16k;

(6).php指令碼執行時間過長

將php-fpm.conf的0s的0s改成乙個時間

6.nignx配置

面試常問伺服器?—nginx八道必懂面試題

面試常問伺服器?—nginx八道必懂面試題

面試常問伺服器?—nginx八道必懂面試題

7.nginx和apache的區別

輕量級,同樣起web 服務,比apache 占用更少的記憶體及資源

抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能

高度模組化的設計,編寫模組相對簡單

最核心的區別在於apache是同步多程序模型,乙個連線對應乙個程序;nginx是非同步的,多個連線(萬級別)可以對應乙個程序

8.fastcgi與cgi的區別

cgi:

web伺服器會根據請求的內容,然後會fork乙個新程序來執行外部c程式(或perl指令碼...), 這個程序會把處理完的資料返回給web伺服器,最後web伺服器把內容傳送給使用者,剛才fork的程序也隨之退出。 如果下次使用者還請求改動態指令碼,那麼web伺服器又再次fork乙個新程序,周而復始的進行。

fastcgi:

web伺服器收到乙個請求時,他不會重新fork乙個程序(因為這個程序在web伺服器啟動時就開啟了,而且不會退出),web伺服器直接把內容傳遞給這個程序(程序間通訊,但fastcgi使用了別的方式,tcp方式通訊),這個程序收到請求後進行處理,把結果返回給web伺服器,最後自己接著等待下乙個請求的到來,而不是退出。

以上就是nginx常見的幾道面試題

面試寶典12

1 請你自我介紹一下自己好嗎?3 說說你最大的缺點?4 你對薪資的要求?5 你對加班的看法?回答樣本 如果工作需要我會義不容辭加班,我現在單身,沒有任何家庭負擔,可以全身心的投入工作。但同時我也會提高工作效率,減少不必要的加班。6 如果通過這次面試我們錄用了你,但工作一段時間卻發現你根本不適合這個職...

cpp面試寶典

小白在面試寶典上的遊蕩 下面開始今日說法 比較兩端 include using namespace std int main cout 0 2 1 分析 初始化a 0,x 0,滿足a 1,且x的非為1,所以符合迴圈條件,x自加為1,a自加為1,進入迴圈體a加為2,已經不符合小於等於1的條件,所以後面...

java面試寶典

分布式session的五種實現方式 redis memcache儲存session 伺服器端共享session 基於資料庫的session 基於cookie的session共享 基於nfs共享檔案系統 怎麼防止客戶端填寫的資料在提交過程中被篡改?加密 使用post提交 https runnable和...