Последние 6 или 8 месяцев я много работал с .NET. Я узнал о веб-сервисах (хотя я не эксперт) и недавно у меня появился сильный интерес к веб-серверам, и я действительно хочу настроить свой собственный. У меня есть старый настольный компьютер с запущенным Windows Server 2008, но я живу в общежитии и у меня нет статического IP. Я знаю, что для этого есть решения, но я хочу лучше понять, что я делаю сначала. Я хотел бы настроить многоцелевой сервер, который я мог бы использовать для размещения веб-сайтов/приложений Android.
Я слышал, что серверы LAMP более настраиваемы (следовательно, обычно более эффективны), чем серверы Windows/IIS. Это правда? Поскольку Apache настолько вездесущ, я действительно хотел бы узнать больше о том, как он работает, и действительно научиться им пользоваться. Единственное, что заставляет меня нервничать в выборе пути LAMP, это командная строка (мне 19 лет, и я вырос на графических интерфейсах). Я раньше работал с командной строкой unix, и мне комфортно с основными командами/навигацией по файловой системе, но настройка чего-то вроде веб-сервера из командной строки заставляет меня ходить в истерике. Я могу получить бесплатные копии почти любого программного обеспечения Microsoft (обожаю быть студентом), но я не хочу жертвовать своим пониманием своего веб-сервера исключительно в обмен на графический интерфейс.
Есть предложения по выбору пути? Меня беспокоит переход на Windows, что я никогда не пойму веб-серверы, потому что для меня все будет инкапсулировано и упрощено. Я также хочу знать, что входит в потрясающий и эффективный сервер. Есть предложения/книги/рекомендации по ресурсам?
решение1
Ваш выбор платформы (Windows IIS или Linux и Apache) во многом продиктован вашими требованиями. Прямо сейчас ваши требования по сути не существуют, поскольку вы просто настраиваете веб-сервер, чтобы поиграться с ним. Выберите стек технологий, который будет наиболее релевантным для ваших долгосрочных целей (и поскольку вы работали с .NET, он, вероятно, перейдет на Windows IIS) и используйте его, вникайте в него и изучайте его.
Нет ничего в использовании стека LAMP, что по сути превратит вас в супер-администратора (возможно, в супер-администратора в отношении LAMP...), равно как нет ничего в использовании IIS, что сделает вас "never really understand web servers because everything would always be encapsulated and simplified for me"
.
То, насколько глубоко вы хотите изучить ту или иную технологию, во многом определяется вашим интересом и мотивацией, а не самой технологией.
решение2
Хотите настроить веб-сервер? Сделайте это. Это не обязательно должно быть годичным обучением, вы можете запустить IIS за несколько минут, а установить Linux с конфигурацией Apache на виртуальной машине за час или два.
Настройка Apache из командной строки примерно означает "yum install apache", а затем "используйте текстовый редактор для редактирования /etc/httpd/httpd.conf" (зависит от дистрибутива Linux). Это не огромная цепочка консольных команд для внесения множества изменений настроек.
Я слышал, что серверы LAMP более настраиваемы (следовательно, обычно более эффективны)
Это не следует. Более настраиваемый, да, более эффективный, полностью зависит от того, что вы подразумеваете под "эффективным". P в LAMP обычно относится к "PHP, Perl, Python, (Ruby)", и вам придется поспорить, если вы скажете, что они эффективнее, чем IIS/ASP.Net.
Если вам нужен легкий (быстрый. «эффективный»?) веб-сервер, то лучше обратить внимание на nginx.
Есть предложения по выбору пути? Меня беспокоит, что при переходе на Windows я никогда не пойму веб-серверы, потому что для меня все будет инкапсулировано и упрощено.
Что, никто не знает, как работает IIS?
Я также хочу знать, что входит в состав отличного и эффективного сервера.
StackOverflow (Serverfault.com и его друзья) работает на Windows/ASP.Net/SQL Server, и в Интернете появились интересные сообщения о том, как они это делают (например,http://highscalability.com/blog/2009/8/5/stack-overflow-architecture.html)
решение3
В зависимости от уровня понимания, который вам нужен, есть несколько способов обойти это.
Для полного глубокого понимания, копайтесь в коде. Очевидно, что вам нужны серьезные навыки, чтобы иметь возможность делать такие вещи.
В противном случае, лучший способ учиться — читать и экспериментировать. Настраивать веб-сайты в разных конфигурациях. Предложить разместить веб-сайт какого-нибудь друга бесплатно (просто убедитесь, что он знает, что это экспериментальный сайт), разместить несколько своих собственных сайтов. Пробовать разные функции. Читать онлайн-документы. Взять в библиотеке случайную книгу по теме, чтобы почитать по дороге на работу.
Кроме того, веб-сервер Windows также имеет некоторые довольно продвинутые функции. Думать, что LAMP обязательно более настраиваемый с большим запасом, не всегда верно. Я сам Linux-пользователь, но я видел, как Windows-пользователи делают довольно продвинутые вещи с IIS. Наличие GUI убивает впечатление 1337-command-line-mad-skills, но помните, что это может быть только впечатление.
Просто в качестве примера, насколько мне известно, сеть Stack Exchange (включая этот сайт) работает на веб-серверах Windows. Это показывает, что с Windows можно делать великие дела.
решение4
Если вы изучите и будете использовать LAMP, вы поймете различные технологии лучше, чем если бы вы изучали Windows + IIS.