2012-12-29 18 views
6

Zostałem przydzielony projekt, który wymaga mnie do dodania strony HTML. Ten wbudowany system (z systemem Linux CentOS 6.3) ma dostęp do dodatkowych soków, ale ma już wiele obowiązków.Po co używać Apache lub Nginx, itp?

Zastanawiałem się nad Apaczem, ale rzuciłem go z powodu wzdęcia, zajrzałem do Nginxa, ale teraz też błądzę. Wydaje się, że mam coraz więcej "funkcjonalności", a co za tym idzie, więcej użycia procesora, niż potrzebuję.

Czy ktoś może mnie oświecić, dlaczego sam nie zaimplementowałbym protokołu HTTP przy użyciu gniazd asynchronicznych?

Moi specyficzne potrzeby są:

  1. odbierać i dekodować GET i POST.

  2. Wysyłaj pliki CSS, JS i JPG zgodnie z żądaniem.

  3. Dane wyjściowe nagłówka, pliku cookie, głowy i treści na podstawie dekodowania GET/POST.

Biorąc pod uwagę, że nie muszę niezliczone rzeczy te oferują serwery internetowe, będące jestem naiwny zakładając ten kurs to zrobić samodzielnie? Co sugerujesz lub ostrzegasz?

+0

Dla naprawdę podstawowych implementacjach pewien. Po prostu uważaj na zagrożenia bezpieczeństwa, które nie są tak dobre w łagodzeniu jak istniejące serwery internetowe. –

+4

Wyzwanie polegające na właściwym doborze, szczególnie w przypadku zagrożenia bezpieczeństwa. Są jednak mniejsze wbudowane serwery, na które możesz patrzeć. –

+0

Jeśli wystarczy zaimplementować mały podzbiór GET i POST, jest to całkiem proste od zera. –

Odpowiedz

10

Zasadniczo korzystasz z serwera WWW, ponieważ dostaniesz pożądaną funkcjonalność w formie, która została już przetestowana, jest bardziej niezawodny niż prawdopodobnie Twój pierwszy kod i jest obsługiwany przez dużą społeczność innych użytkowników. Jeśli Apache i nginx są dla ciebie za ciasne (chociaż nginx jest dość charakterystyczny, jak lekki jest dla ciężkich ładunków), a zwłaszcza, gdy oczekiwane obciążenie jest bardzo lekkie, rozejrzyj się za innymi opcjami.

Wiki ma całą stronę comparisons of lightweight web servers.

+0

W ciągu pięciu lat od momentu, w którym odpowiedziałem na to, pojawiła się inna opcja: używanie Node.js. –

1

Łatwym pułapkę wpaść: myślenie „Nie muszę całą funkcjonalność produktu X, ja po prostu napisać własną rękę tylko z funkcjonalnością, że muszę "tylko po to, aby całkowicie ponownie zaimplementować Produkt X, jedno nowo odkryte wymaganie na raz.

Wątpię, czy wbudowany system, który może działać w CentOS, jest tak głodny braku zasobów, że nie może wygodnie uruchomić Nginx (a nawet Apache, którego ludzie używają Raspberry Pi z odpowiednimi poprawkami konfiguracji), biorąc pod uwagę uzasadnione założenia dotyczące liczby stron, które faktycznie podajesz. Uruchomiłem go na Pentium 266 z 256 MB pamięci RAM obsługującej kilka prostych aplikacji PHP, które wyświetlały mniej więcej stronę co dwie sekundy, bez problemów. Jak pamiętam, jest dość modułowa, więc możesz po prostu wybrać, aby nie ładować funkcji, której nie potrzebujesz. Później, gdy zmieniają się Twoje wymagania i okazujesz się potrzebna, możesz je ponownie podłączyć :)

Jeśli naprawdę interesujesz się zużyciem zasobów, zajrzyj do serwerów WWW zaprojektowanych dla aplikacji wbudowanych. Słyszę, że Cherokee jest całkiem niezły. Mongoose wygląda obiecująco.

Powiązane problemy