У кого есть лучшая кодовая база для изучения: nginx или lighttpd? - PullRequest
4 голосов
/ 19 июня 2010

Основная цель - учиться на популярной кодовой базе веб-сервера (реализованной на C) с приоритетом структуры / дизайна, а не хитрых уловок в коде.

Я не включил Apache, поскольку его кодовая база на порядок больше двух упомянутых.

Ответы [ 3 ]

5 голосов
/ 01 июля 2010

Ngxinx может быть просто лучшей кодовой базой для прямого кода, с которой я когда-либо сталкивался. Я прочитал большие куски Apache, и я всегда чувствовал себя нечистым, это монолитный беспорядок.

Вы познакомитесь не только с веб-серверами, изучая Nginx, но и с лучшими практиками написания сетевого программного обеспечения под Unix и Straight C, от архитектуры кода до методов мета-программирования.

Я не слышал ничего хорошего о Lighttpd, но его возможности ограничены по сравнению с Nginx. поэтому я бы потратил время на nginx, если бы я был тобой. Хотя ограниченная область применения lighttpd может быть полезной для вас, как первая цель для изучения.

3 голосов
/ 19 июня 2010

Аккуратные трюки всегда происходят в любой кодовой базе, если честно.Тем не менее, ответ, который вы, вероятно, не хотите слышать, заключается в том, что, вероятно, было бы хорошо изучить оба, чтобы вы могли учиться через перекресток.Альтернатива может действительно оставить вас застрявшими в ящике «lighthttpd» или «nginx» и т. Д.

0 голосов
/ 19 июня 2010

Я не включил Apache, поскольку его кодовая база на порядок больше двух упомянутых.

На самом деле код Apache вполне читабелен. У него большая база кода, потому что он делает много вещей. Но это хорошо структурировано и довольно легко понять. Вы также можете проверить библиотеку APR (Apache Portable Runtime), в которой есть множество мелких вещей, из которых можно поучиться.

IMO, если вы хотите изучать программирование, вы должны начать с проектов более низкого профиля - и не с HTTPd, а с чего-то более простого.

И nginx, и LightHTTPd (как и Apache) являются программным обеспечением производственного качества, что означает очень крутую кривую обучения. И, к сожалению, learning часто означает копание архивов, чтобы понять, почему именно так - с возрастом приходит в любой зрелый проект.

Если вы просто изучаете C и изучаете дизайн, вы можете проверить FreeBSD или ее производные. По моему опыту, это лучшее место для старта: там много инструментов и библиотек всех калибров. И их списки TODO никогда не бывают пустыми, что служит хорошим руководством для начала.

...