持續輸出面試題之Nginx

開篇介紹

你們好,我是Java最全面試題庫的提褲姐,今天這篇是分佈式技術的第四篇,主要介紹Nginx;在後續,會沿着第一篇開篇的知識線路一直總結下去,作到日更!若是我能作到百日百更,但願你也能夠跟着百日百刷,一百天養成一個好習慣。html

什麼是 Nginx?

Nginx是一個web服務器和反向代理服務器,用於HTTP、HTTPS、SMTP、POP3和IMAP協議。web

列舉Nginx的一些特性

Nginx服務器的特性包括:面試

  • 反向代理/L7負載均衡器
  • 嵌入式Perl解釋器
  • 動態二進制升級
  • 可用於從新編寫URL,具備很是好的PCRE支持

Nginx 如何處理HTTP請求?

Nginx使用反應器模式。主事件循環等待操做系統發出準備事件的信號,這樣數據就能夠從套接字讀取,在該實例中讀取到緩衝區並進行處理。單個線程能夠提供數萬個併發鏈接。安全

在 Nginx中,如何使用未定義的服務器名稱來阻止處理請求?

只需將請求刪除的服務器就能夠定義爲:
Server{listen80; server_name「; return444;}
服務器名被保留爲一個空字符串,它將在沒有「主機」頭字段的狀況下匹配請求,而一個特殊的 Nginx的非標準代碼444被返回,從而終止鏈接。服務器

使用「反向代理服務器」的優勢是什麼?

反向代理服務器能夠隱藏源服務器的存在和特徵。它充當互聯網雲和web服務器之間的中間層。這對於安全方面來講是很好的,特別是當使用web託管服務時。網絡

Nginx服務器的最佳用途。

Nginx服務器的最佳用法是在網絡上部署動態HTP內容,使用SCGI、WSGl應用程序服務器 ,用於腳本的FastCGI處理程序。它還能夠做爲負載均衡器。併發

Nginx服務器上的 Master和進程分別是什麼?

Master進程:讀取及評估配置和維持
Worker進程:處理請求負載均衡

請解釋你如何經過不一樣於80的端口開啓 Nginx?

爲了經過一個不一樣的端口開啓 Nginx,必須進入etc/Nginx/sites- enabled/,若是這是默認文件,那麼你必須打開名爲default」的文件。編輯文件,並放置在你想要的端口:
Like server {listen 81;}分佈式

是否有可能將 Nginx的錯誤替換爲50二、503錯誤?

502=錯誤網關
503=服務器超載
有可能,可是能夠確保 fastcgi_intercept_errors被設置爲on,並使用錯誤頁面指令。memcached

Location/fastcgi_pass 127.0.01:9001; fastcgi_intercept_error on; error_page 502 =503/errorpage. html; #...}

在 Nginx中,如何在URL中保留雙斜線?

要在URL中保留雙斜線,就必須使用 merge_slashes_off
語法: merge_slashes [on/off]
默認值: merge_slashes on
環境 : http,server

ngx_http_ upstream_module的做用是什麼?

ngx_http_upstream_module 用於定義可經過fastcgi傳遞、proxy傳遞、 uwsgi傳遞、 memcached傳遞和scgi傳遞指令來引用的服務器組。

什麼是C10K問題?

C10K問題是指沒法同時處理大量客戶端(10,000)的網絡套接字。

請陳述stub_status和 sub_filter指令的做用是什麼?

Stub_status指令:用於瞭解Nginx當前狀態的當前狀態,如當前的活動鏈接,接受和處理當前讀/寫/等待鏈接的總數
Sub_filter指令:用於搜索和替換響應中的內容,並快速修復陳舊的數據

解釋Nginx是否支持將請求壓縮到上游?

可使用 Nginx模塊 gunzip將請求壓縮到上游。 gunzip模塊是一個過濾器,它能夠對不支持「gzip」編碼方法的客戶機或服務器使用「內容編碼:gzip」來解壓縮響應。

如何在Nginx中得到當前的時間?

要得到 Nginx的當前時間,必須使用SSl模塊$date_gmtdate_local的變量。
Proxy_set_header THE-TIME $date_gmt;

用 Nginx服務器解釋-s的目的是什麼?

用於運行 Nginx-s參數的可執行文件。

如何在Nginx服務器上添加模塊

在編譯過程當中,必須選擇Nginx模塊,由於Nginx不支持模塊的運行時間選擇。

相關文章
相關標籤/搜索