Кажется само собой разумеющимся, что вы не должны использовать Webrick в качестве рабочего сервера, но я не могу найти где-либо упоминания почему. Похоже, что консенсус таков: «Webrick подходит для разработки, но Thin или Unicorn - выбор для производства, точка».
Я просмотрел домашнюю страницу тонкого сервера, и там говорится о запросах в секунду, но я не очень понимаю график, так как там нет аннотации.
Может ли кто-нибудь сообщить мне, почему я должен использовать Thin или Unicorn по сравнению с Webrick? Также есть ли польза от использования Webrick для разработки? Я использую Webrick с тех пор, как он поставляется с направляющими, и я думаю, что должна быть причина, почему он используется по умолчанию.
Кстати, я использую Heroku.
Ответы:
Пара важных причин
Когда я упоминаю перенаправления / перезапись, я имею в виду тот факт, что при использовании Webrick вы должны обрабатывать перезапись на другом уровне (Rack, Sinatra, Rails, пользовательский код Webrick и т. Д.). Это требует от вас запуска дополнительных рубиновых «обработчиков» для выполнения вашего кода перезаписи. Для сайта с низким трафиком это может быть нормально, поскольку у вас могут быть предварительно нагретые процессы, которые уже ничего не делают. Однако для сайта с более высоким трафиком это дополнительная нагрузка на сервер из-за того, что серверы переднего плана (Apache, Nginx и т. Д.) Могут справиться без раскрутки Ruby * и, вероятно, на несколько порядков быстрее.
* например, если вы работаете за балансировщиком нагрузки, вы можете направить весь перезаписанный трафик на сервер, на котором не установлен Ruby, и позволить вашим основным серверам управлять только основным трафиком. Этот трафик перезаписи может быть связан с изменениями сайта для SEO или чем-то подобным. Другим случаем может быть сайт, который имеет несколько компонентов, и, возможно, один раздел - это Rails, другой - PHP, и для обоих необходимы перезаписи (т.е. переписать старые пути PHP на Rails)
источник
WEBrick также не может обрабатывать более длинные URI, если они превышают 2083 символа, вы увидите сбой. У Thin нет этих проблем, что делает его превосходным - он уже находится в разработке.
источник
Не очень люблю усложнять простые вещи и преждевременную оптимизацию. WEBrick можно использовать в продакшене, если это веб-сайт с низкой посещаемостью. Большинство приложений есть.
Если ваш сайт делает что-то, что требует времени, например, отправляет электронные письма или создает файлы PDF, вам следует сделать WEBrick многопоточным . Вы хотите обрабатывать несколько запросов одновременно.
источник
В прошлом у него были некоторые проблемы с безопасностью, но, похоже, главная причина в том, что он очень медленный по сравнению с серверами, которые предназначены для производства.
источник
Самая большая слабость webrick при работе в производственном режиме заключается в том, что это однопоточный однопроцессный веб-сервер, что означает, что он способен одновременно обслуживать только один-единственный HTTP-запрос.
источник