Яка хороша відправна точка для початківців? Apache, Nginx або Cherokee?

Будь-яке з цих веб-серверних програм, тобто Apache, Nginx і Cherokee, зараз підходить для мого веб-сайту. І я навчаюся sysadmin, щоб мати можливість керувати своїм сервером (а не для роботи).

Для новачка, який я, будь-який веб-сервер однаково новий. Отже, будь ласка, зверніть увагу на мої вимоги та люб'язно запропонуйте програмне забезпечення веб-сервера, щоб почати з (і сидіти ... як завжди):

  • Масштабованість
  • низький рівень ресурсу
  • підтримка PHP, MySQL, APC, Memcached, Meteor - - все для веб-сайту WordPress
  • корисно зараз і в довгостроковій перспективі, оскільки трафік веб-сайту збільшується
  • толерантний до навантаження
  • усе інше ...

Як бачите, я все ще перебуваю в фазі початківців. Отже, будь ласка, не приходьте, кажучи, що це спірне питання. Це, безумовно, дотримується правил SF (або, сподіваюся, так, я просто читав їх).

4

5 Відповіді

Безумовно, Apache - ваша найбезпечніша точка відліку. Не те, що це обов'язково простіше, ніж інші, але програмне забезпечення, яке ви хочете запустити поверх неї, було перевірено з Apache зі 100-відсотковою впевненістю. Як правило, все працює з іншими веб-серверами, але якщо у вас вже є досвід типового використання, Apache - це шлях для вас.

Performance-wise Apache is fine. nginx, lighttpd and other more performant web servers starts to matter only in corner-cases like YouTube. For your typical web sites (where with a decent server & network bandwidth 'typical' can easily be tens of millions of page loads per month) Apache won't be the bottleneck; it can handle thousands and thousands of static http requests per second without sweat, and with dynamic applications your PHP script/database/whatever is the actual bottleneck, anyway.

If Apache starts to be your bottleneck, you most likely need to scale out with more hardware. Though one scenario where nginx & lighttpd truly shines is serving out lots of large static content, such as video files.

10
додано
19 req/s проти Apache2 роблять статичні файли нічого. 19 req/s проти Apache2, що роблять mod_php проти великого скрипта PHP - це біль ..
додано Автор EtienneT, джерело
Насправді відбувається величезне зростання продуктивності сервера від Apache до Nginx, коли використовується mod_php. Apache не розрізняє процеси з і вбудованим PHP, тому простий запит зображення може зайняти PHP (хоча зазвичай на короткий час). Nginx уникає цієї проблеми, розділяючи два з них. Я настійно рекомендую придбати ложковий кормовий шар для Apache.
додано Автор Schotime, джерело
50M перегляд сторінки/місяць - 19 за секунду - apache навряд чи помітить це.
додано Автор T. Verron, джерело
@Martin F: Так, такі речі починають мати значення з серйозним трафіком. Один звичайний спосіб навіть з apache - відокремити статичний вміст від власного субдомену, наприклад images.yourdomain.com або static.yourdomain.com, і інший приклад сервера/Apache, що відповідає там, і мати інший сервер або більше для динамічного вмісту в www.yourdomain.com або yourdomain.com. Звичайно, існують десятки інших способів досягти цього.
додано Автор Janne Pikkarainen, джерело
Коли я почав працювати, наш єдиний сервер був сервером IBM NetFinity з Pentium 3 Xeon і 1 Гб оперативної пам'яті для близько 50 000 клієнтів. Ми також мали підтримку PHP. Так, це було ще в 2001-му, і багато користувачів PHP не було, але все-таки, так, я знаю біль і вигоди PHP. Я також знаю, як погано закодовані CakePHP додаток може принести 8 основний сервер з 16 Гб оперативної пам'яті на коліна.
додано Автор Janne Pikkarainen, джерело
@pauska: 19 динамічних запитів на секунду з болем Apache і mod_php? Wow, у вас або дуже повільний сервер або дуже важкі сценарії для запуску.
додано Автор Janne Pikkarainen, джерело
@Aahan: Якщо ви маєте використовувати програмне забезпечення, таке як Varnish на додаток до CDN, тоді рівень трафіку вже набагато перевищує 50 мільйонів переглядів сторінок, і ви чекаєте на вас ще кілька проблем. :-) А оскільки ви сказали "Wordpress", варто згадати, що плагін кешу W3TC WordPress підтримує принаймні Amazon CloudFront.
додано Автор Janne Pikkarainen, джерело
@Aahan: 30 переглядів сторінок в секунду подібно до фонового шуму до вибраного веб-сервера. Ваш сервер навряд чи помітить, що і з будь-яким пристойним серверним обладнанням середня величина навантаження повинна коливатися біля нуля.
додано Автор Janne Pikkarainen, джерело
@Aahan: Як я вже згадував раніше, Apache може легко обслуговувати тисячі HTTP-запитів в секунду зі статичним вмістом, при цьому динамічний вміст - вузьким місцем буде ваше веб-додаток, а не Apache.
додано Автор Janne Pikkarainen, джерело
Це залежить від вашої програми та середовища сервера. Хочете бути впевненими? Тест! Стріляйте своїм сервером за допомогою Apache Benchmark, Siege, JMeter або іншого інструмента бенчмаркінгу і перевірте, чи може він працювати з таким трафіком.
додано Автор Janne Pikkarainen, джерело
@JannePikkarainen ви явно ніколи не працювали для некомерційної, де сервери охоплюють 6 поколінь Pentium. бюджет буде там наступного року, але він працює зараз ... упевнений;)
додано Автор Jesse, джерело
@Janne Pikkarainen Останнє питання. при використанні мережі доставки контенту, як-от Amazon CloudFront або EdgeCast, чи потрібно використовувати програмне забезпечення, таке як Varnish? Дякую.
додано Автор Harris McGuire, джерело
@Janne Pikkarainen (1) Таким чином, блог, який отримує 50 мільйонів переглядів сторінок (або 20-30 переглядів сторінок в секунду), не матиме ніякої різниці при використанні Varnish на додаток до CDN, чи не так? Отже, CDN має бути достатнім. (2) Це моя ідея: CentOS> Apache (PHP, MySQL)> APC, Meteor (для живого блогу)> Wordpress з W3TC + CDN. Добре?
додано Автор Harris McGuire, джерело
@Janne Pikkarainen ви дуже праві, але тепер я думаю про використання ресурсів. Зараз моє запитання: Чи є Apache таке (або принаймні порівнянне з) Nginx/Lighttpd/Cherokee тощо з точки зору використання ресурсів під навантаженням, як 30 переглядів сторінки в секунду? Я також зрозумів, що Apache є кращий динамічний сервер вмісту.
додано Автор Harris McGuire, джерело
Так, під таким навантаженням Apache так само добре, як Nginx або Cherokee, чи не так?
додано Автор Harris McGuire, джерело
Я дивлюся на 50 мільйонів переглядів сторінок (на місяць) веб-сайту. Чи все-таки Apache все в порядку?
додано Автор Harris McGuire, джерело

Я думаю, що Apache є одним з більшістю підручників і людей, які можуть допомогти. Плюс комбінація (L) AMP - Linux Apache Mysql PHP працює з самого початку і дуже легко налаштовується. Memcached також добре працює з Apache і вашою базою даних mySQL, якщо ваш сайт має масштаб до середнього розміру. Я почав з простої установки LAMP і пізніше встановив Memcached, коли трафік збільшився на кілька сайтів. За допомогою деяких підручників все було досить просто.

4
додано
Memcached і MySQL не мають нічого спільного з Apache .. Ви можете використовувати їх з будь-яким веб-сервером або без нього.
додано Автор android.weasel, джерело
@Claude - Але використання Memcached повністю засноване на мові. Він ніколи не розмовляє безпосередньо з веб-сервером ..
додано Автор android.weasel, джерело
У порівнянні з витратами ресурсів, спричиненими типовими матеріалами PHP (WordPress, Drupal ....), споживання ресурсів Apache є дитячою грою.
додано Автор Janne Pikkarainen, джерело
Але я також чув, що Apache не дуже толерантний до навантаження, і, крім того, він також дуже ресурсомісткий, чи не так?
додано Автор Harris McGuire, джерело
Я повністю згоден з вами, Memcached можна використовувати з різними веб-серверами і базами даних. Але особливо для початківців це найкраще, якщо є багато підручників з тією ж самою установкою ... принаймні, що мені дуже допомогло.
додано Автор Imane Fateh, джерело

Ви просите місяць на паличці ..

Apache a є дуже модульним, легким для налаштування та оновлення сервером веб/додатків. Однак це не дуже зручно для обробки великих обсягів трафіку під час обробки додатків (наприклад, PHP), так як він видаляє величезну кількість оперативної пам'яті для кожного з дітей.

Nginx - відмінний веб-сервер. Це не вимагає ресурсів (я чув про виробничі сайти, використовуючи 25 Мбайт оперативної пам'яті і 2-3% CPU). Однак це зовсім не сервер додатків. Він обслуговує статичний вміст або його проксі. Більш нічого.

Я використовував обидва ці тривалий час. Nginx + PHP-FPM - це цікаво налаштувати і налаштувати, але часто це не потрібно.

2
додано
@ Kevin Cathcart: Я думаю, ви неправильно зробили мою відповідь, я написав: "Він служить статичним змістом, або його проксі. Нічого іншого". як у "не розбирає будь-яку динамічну мову"
додано Автор EtienneT, джерело
Я не тлумачив вашу відповідь неправильно, але я бачив, що це може бути неправильно прочитане, тому прокоментував пояснити. Серверна сторона включає в себе не включається в defintions багатьох людей статичних, depite насправді не є динамічним. Також було б легко помилково "або це проксі", як вимагає повністю сумісний HTTP 1.1 сервер для розміщення динамічного контенту, що не так, оскільки це також може бути проксі для служб FastCGI. Оскільки ці помилки були можливі, я думав, що роз'яснення їх у коментарі може бути корисним.
додано Автор Jerome Jaglale, джерело
Проте для уточнення, nginx має рідну серверну сторону і підтримує FastCGI, так що це не просто проксі-чи-нічого. Вона також може бути налаштована для обслуговування статичного вмісту, передавати все, що не могла служити на іншому сервері, і замінити будь-які 404 або подібні помилки перенаправленням на стороні сервера.
додано Автор Jerome Jaglale, джерело

Apache - це, напевно, безпечна ставка для практично будь-якого сценарію "початківця", в основному через величезну кількість доступних для неї документів.

NGINX - це чудовий веб-сервер (серед іншого), але спроба інтегрувати PHP та/або CGI з ним вимагає певних зусиль і хакерів. Вона дуже легка, і може робити багато модних речей (наприклад, зворотний проксі), але це, мабуть, не найкраще, щоб самостійно завантажитися.

2
додано

Я грав з черокі і apache2 обидва вони добре і добре документально. Cherokee робить майбутній веб-інтерфейс GUI для керування вашим сервером, який може бути легшим для деяких людей. Особливо початківці.

Однак більшу частину часу, коли мені потрібно швидко встати на веб-сервер, я вдаюся до apache2, тільки тому, що звик до налаштування.

Вибираючи між цими трьома, ви не можете помилитися з будь-яким з них. Всі вони хороші і мають свої «за» і «против», я пропоную вам подивитися на деякі тести, як цей один.

1
додано