2012-12-29 44 views
6

我已經分配了一個項目,需要我添加一些HTML頁面服務。這個嵌入式系統(運行Linux CentOS 6.3)有一些額外的果汁可用,但也已經有很多責任。爲什麼麻煩使用Apache或Nginx等?

我認爲是Apache,但由於臃腫而拋棄了它,我查看了Nginx,但現在我也不敢迴避。看起來,我正在獲得更多'功能',因此,CPU使用率超過了我的需要。

有人能告訴我爲什麼我不會自己使用異步套接字來實現HTTP協議嗎?

我的具體需求是:

  1. 接收和解碼GET和POST。

  2. 根據要求發送CSS,JS和JPG文件。

  3. 根據GETs/POSTs的解碼輸出標題,cookie,頭和身體數據。

鑑於我不需要這些網絡服務器提供的無數的東西,我是否天真地承擔了這個過程呢?你會建議或警告什麼?

+0

對於真正的基本實現,確保萬無一失。只是謹防安全風險,您不像現有的Web服務器那樣擅長緩解安全風險。 –

+4

正確的挑戰,特別是如果存在安全隱患。但是您可以查看更小的嵌入式Web服務器。 –

+0

如果您只需實現GET和POST的一小部分,則從頭開始非常簡單。 –

回答

10

基本上,您使用的是Web服務器,因爲那樣您就可以在已經過測試的表單中獲得所需的功能,比第一個代碼更可靠,並且得到其他大型社區的支持。如果Apache和nginx對你來說太重了(儘管nginx的特點是重負載的輕量級),特別是如果你期望的負載非常輕,那麼可以考慮其他選項。

維基有comparisons of lightweight web servers.

+0

在我回答這個問題後的五年中,出現了另一種選擇:使用Node.js. –

1

一個簡單的圈套整個頁面分爲:想「我並不需要在產品X的所有功能,我只寫我自己的,只是我需要的功能「只能完全重新實現產品X,一次只能有一個新發現的需求。

我有點懷疑可以運行CentOS的嵌入式系統是否存在資源匱乏以至於無法運行Nginx(甚至Apache,運行在Raspberry Pi上的用戶可以通過適當的配置調整來運行),給出了你實際服務多少頁的合理假設。我在奔騰266上運行了它,內存爲256MB,可爲幾個簡單的PHP應用程序提供服務,這些應用程序每兩秒鐘就可以處理大約一頁,而且沒有任何問題。我記得,它是相當模塊化的,所以你可以選擇不加載你認爲不需要的功能。然後,當你的需求發生變化,你發現你確實需要它時,你可以將它插回去:)

如果你真的關心資源消耗,請查看專爲嵌入式應用設計的Web服務器。我聽到Cherokee是相當不錯的。 Mongoose也看起來很有希望。