首頁  >  問答  >  主體

web伺服器 - Nginx可不可以理解為一個框架,上面跑的都是什麼程式?

web這塊東西真的太多了,框架N多種,還有什麼web容器,web伺服器,這麼多名詞,對於新手來說簡直就是惡夢啊。 。 。
花了一天時間,稍微清楚了點,

1,其實這些所謂的框架無非就是一些封裝,把介面提供給我們使用。

2,web容器麼應該算是運作環境或編譯器?用來產生html檔的。

3,web伺服器這個概念太廣了,感覺說不清楚。 。 。

4,言歸正傳,Nginx應該屬於框架?還是說,它本身就是一個應用程式?還有,在Nginx上面進行開發是用C嗎? (注意,不是說Nginx本身是由什麼語言開發的),而是Nginx上面跑的程式是由什麼語言開發的?只能用C嗎?

5,Nginx開發到底是什麼意思?如果它本身就是一個應用程序,在應用程式上面再開發一個應用程式?

以上5點不知道有哪幾點是對的,可能全錯。 。 。望各位大神解救一下我這個想學web的菜鳥

阿神阿神2713 天前571

全部回覆(3)我來回復

  • 漂亮男人

    漂亮男人2017-05-16 17:17:37

    1. 我非常同意你的看法

    2. web容器,就是一個應用程式,利用應用層的http傳輸各種格式的資料,例如html,瀏覽器會根據資料類型分別處理

    3. web伺服器概念不大,可以通俗理解為就是一個赤裸裸的http服務,只不過這個http服務傳輸的web相關的數據

    4. Nginx位於網路的最頂層,屬於一個應用。 C開發,它支援模組的二次開發。

    5. Nginx開發應該指的是插件的開發,nginx也是有http模組的,但是這個http模組是默認通用的模組,如果你需要定制自己的http的模組你就需要用C二次開發。我們有個需求就是驗證請求的合法性,我們的做法就是每個http請求的header裡都會有個加密串,然後透過我們自己寫的nginx的http模組進行反解,如果不對就block掉,這樣無效請求就不會進到我們的業務伺服器。還有一個情況也是最常見的就是用Lua寫nginx拓展,例如發布新版本做灰度發布的時候,我們想讓少部分用戶流量導入新伺服器,測試沒問題的時候再導入所有流量,這個就可以用lua腳本來實現,寫一個nginx組件實現你的個性化需求,當然nginx框架本身提供一些底層的api,所以在寫插件的時候你只需要關注你的邏輯而不需要關注底層實現.

    nginx開發就像你給一個類別寫一個類別方法一樣

    回覆
    0
  • 巴扎黑

    巴扎黑2017-05-16 17:17:37

    框架是把開發中常用的程式碼和模式提取出來,不需要程式設計師自己再手動造了

    web容器就是虛擬機器

    web伺服器就是處理網路請求回傳各種文字的軟體進程,例如最常見的就是碰到http請求就回html文字

    nginx是代理伺服器,基於各種語言實現的web伺服器進程沒有nginx也能照樣處理網絡請求以及吐回相應的文本,而nginx的作用簡單說就是把各種網絡請求篩選後扔給這些相應的web伺服器進程,再把這些web伺服器吐回的文本作為它處理網絡請求吐回去的文本,嗯nginx也是web伺服器進程

    上面說了,只要是能處理網絡socket請求的進程,nginx都可以溝通,所以nginx與什麼語言開發沒關係,除非你要對nginx本身功能拓展,那麼用c與lua

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 17:17:37

    是一個類似Apache 的伺服器,後端程式語言依賴伺服器來搭建運作環境,可以理解為一個服務,而不是程式

    回覆
    0
  • 取消回覆