Wygląda na to, że jest oczywiste, że nie możesz używać Webricka jako serwera produkcyjnego, ale tak naprawdę nie mogę znaleźć nigdzie wspominającego dlaczego. Wydaje się, że konsensus jest następujący: „Webrick nadaje się do tworzenia, ale Cienki lub Jednorożec to wybór do produkcji, kropka”.
Sprawdziłem stronę główną serwera Thin i mówi o żądaniach / sekundę, ale tak naprawdę nie rozumiem wykresu, ponieważ nie ma adnotacji.
Czy ktoś może mi powiedzieć, dlaczego powinienem używać Thin lub Unicorn w porównaniu do Webrick? Czy są jakieś korzyści z używania Webrick do programowania? Używam Webricka, ponieważ jest dostarczany z szynami i myślę, że powinien być powód, dla którego jest domyślny.
Nawiasem mówiąc, używam Heroku.
Odpowiedzi:
Z kilku ważnych powodów
Kiedy wspominam o przekierowaniach / przepisaniach, mam na myśli fakt, że używając Webrick, musisz obsługiwać przeróbki na innej warstwie (Rack, Sinatra, Rails, niestandardowy kod Webrick, itp.). Wymaga to uruchomienia dodatkowych "handlerów" ruby, aby wykonać przepisany kod. W przypadku witryny o małym natężeniu ruchu może to być w porządku, ponieważ wstępnie rozgrzane procesy mogą już nic nie robić. Jednak w przypadku witryny o większym natężeniu ruchu jest to dodatkowe obciążenie serwera ze względu na coś, z czym serwery frontonu (Apache, Nginx itp.) Mogą sobie poradzić bez uruchamiania Ruby * i prawdopodobnie szybciej o rząd wielkości.
* na przykład, jeśli korzystasz z modułu równoważenia obciążenia, możesz skierować cały ruch związany z przepisywaniem do serwera, na którym nie ma zainstalowanego języka Ruby, i pozwolić głównym serwerom zarządzać tylko ruchem podstawowym. Ten ruch związany z przepisywaniem może wynikać ze zmian w witrynie pod kątem SEO lub czegoś podobnego. Innym przypadkiem byłaby strona, która ma wiele komponentów, a być może jedna sekcja to Rails, druga to PHP, a ponowne zapisanie jest potrzebne dla obu (tj. Przepisanie starych ścieżek PHP na Rails)
źródło
WEBrick nie radzi sobie również z dłuższymi identyfikatorami URI, jeśli przekroczą 2083 znaków, zobaczysz awarię. Cienki nie ma tych problemów, co czyni go lepszym - już w fazie rozwoju.
źródło
Nie lubię komplikować prostych rzeczy i przedwczesnej optymalizacji. WEBrick może być używany w produkcji, pod warunkiem, że jest to witryna o małym ruchu. Większość aplikacji jest.
Jeśli Twoja witryna robi coś, co wymaga czasu, np. Wysyła e-maile lub generuje pliki PDF, powinieneś uczynić WEBrick wielowątkowym . Chcesz obsługiwać wiele żądań jednocześnie.
źródło
W przeszłości miał pewne problemy z bezpieczeństwem, ale wydaje się, że głównym powodem jest to, że jest naprawdę wolny w porównaniu z serwerami przeznaczonymi do produkcji.
źródło
Największą słabością webricka działającego w trybie produkcyjnym jest to, że jest to jednowątkowy, jednoprocesowy serwer WWW, co oznacza, że jest w stanie obsłużyć tylko jedno żądanie http na raz.
źródło