1. 程式人生 > >面試常問伺服器?—Nginx八道必懂面試題

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

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

 

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密集型應用,不算是計算密集型。

Java學習圈子:


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的<value name="request_terminate_timeout">0s</value>的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常見的幾道面試題

粉絲福利

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

 

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

上圖中的資料都是我精心錄製視訊,感興趣的可以加入我的Java學習圈子: 免費獲取。希望能夠在你接下來即將應對的的面試過程中能夠盡到