Чи є легкий веб-сервер, який обслуговуватиме динамічний контент?


21

Я будую зображення із сервером Nagios. Однією з проблем малинового пі є те, що пам'ять на малиновому пі дуже мала. Тому я буду використовувати легкий інтерфейс на основі php-apc замість стандартного.

Мені було цікаво, який легкий веб-сервер рекомендується використовувати?

Я розглядав мінімум веб-сервер, який може робити php та надавати SSL. Я думав про Apache2 або Nginx. Хоча я думаю, що Apache все ще перевершить Nginx, оскільки вміст динамічний.


1
Nginx легко перевершить Apache.
Алекс Чемберлен

@AlexChamberlain на статичний вміст, який він робить, але не на динамічний.
Лукас Кауффман

5
Претензія. Це залежить від того, що ви розумієте під виконанням. Nginx використовуватиме менше пам'яті, менше просочується та швидше обслуговуватиме (статичні) файли. В моєму (обмеженому, але технічному) досвіді динамічний контент подається швидше або швидше, ніж Apache. Враховуючи профіль пам'яті Nginx, він буде набагато краще на Raspberry Pi. Перевага Apache - хоч і не тут - це стабільніше і є більш досвідчені фахівці.
Алекс Чемберлен

Я б навіть не вважав Apache в 256 Мб, якщо у вас не дуже складна конфігурація, якою nginx або lighttpd не вдається керувати
Джон Ла Рой

Відповіді:


17

Справжнє питання тут: "Вам потрібні всі функції, які надає Apache?" (або що ще важливіше: "Чи готові ви використовувати пам'ять для цих функцій?") - Ви можете налаштувати ДУЖЕ СУШЕНИЙ Apache + mod_perl або mod_php, щоб запустити веб-інтерфейс Nagios (або апаратуру Über-Stripped, що просто запускає CGI Perl), але навіть у мінімалістичному вигляді Apache, ймовірно, займе більше пам'яті, ніж nginx, щоб виконати ту саму роботу - він просто не був побудований для того, щоб бути малим.

Щоб бути на 100% впевненим, ви можете зробити резервне копіювання (компілюйте і nginx, і Apache, і подивіться, що їсть менше оперативної пам’яті), але мій досвід роботи на «звичайних» серверах говорить мені, що nginx, мабуть, кращий вибір для низької пам’яті конфігурація: Ви відмовляєтеся від гнучкості Apache, але якщо вам це все-таки не знадобилося (а більшість сайтів - ні ), ви ніколи не помітите різниці.


Ефективність (час), я сумніваюся, вас обмежить ваш веб-сервер - Усі надумані орієнтири вбік, якщо ви робите достатньо обсягу, коли продуктивність серверного двигуна, який роздає сторінки, є критичним, що ви, ймовірно, збираєтесь щоб випікати ваш Raspberry Pi (і справді, скільки людей буде переглядати ваші дані моніторингу одразу? :-).
Це в значній мірі аксіома, що ви можете оптимізувати систему для простору чи часу, але ніколи і те й інше - і на Raspberry Pi простір, мабуть, є вашим обмежуючим обмеженням.


Я скептично налаштований, що Apache в наші дні набагато потужніший, ніж Nginx.
Алекс Чемберлен

@AlexChamberlain Якщо ви уважно прочитаєте мій пост, то зауважте, що я ніколи не використовував це слово powerful(тому що це невизначений термін). Я сказав flexible(маючи на увазі, скільки способів сервер з голими кістками може бути налаштований для задоволення потреби). Це не означає, що погано відображається на будь-якому сервері: обидва - це відмінні фрагменти коду, але вони мають зовсім інші цілі дизайну. Apache призначений для всіх людей - вантажівка, в яку можна спакувати весь будинок. nginx призначений для маленьких і швидких - спортивний автомобіль, але ви не можете брати з собою дружину, дітей, закоханих та сімейну собаку.
voretaq7

Я думаю, що Nginx росте ... тепер це принаймні хетчбек і весь час росте. Він може підтримувати всі основні динамічні мови так чи інакше, підтримує SSL та SPDY, який зараз знаходиться в бета-версії.
Алекс Чемберлен

15

Nginx

У мене є хороший досвід роботи з Nginx як веб-сервером. Я б об'єднав його з легкою рамкою wsgi, як пляшка або колба, для швидкої розробки додатків у Python.

Не сподівайтеся, що він обробляє більше 10 запитів за секунду :)

Установка

Nginx є як у сховищах Debian / Raspbian, так і Arch, тому може бути встановлений за допомогою однієї команди.

Арк

sudo pacman -Sy nginx

Debian / Raspbian

sudo apt-get install nginx

Конфігурація

Прикладів конфігурації в усьому Інтернеті досить багато, і детальне пояснення, ймовірно, виходить за рамки цього питання. У Nginx Wiki є багато прикладів, і список розсилки дуже корисний.

Оскільки ви згадали про PHP, вам буде дуже цікаво знати, що стандартний /etc/nginx/nginx.confфайл містить приклад PHP.


Я люблю Nginx. Дуже легко розширити за допомогою своєї модульної системи.
Алекс Чемберлен

1
Я, можливо, трохи розширив вашу відповідь, сподіваюся, ви не заперечуєте?
Алекс Чемберлен

13

lighttpd

Чудовим веб-сервером з низькими ресурсами є lighttpd , який підтримує і PHP, і SSL. Це , здається, працює з PHP на Raspberry Pi, і це дуже можливо налаштувати LightTPD для підтримки SecureHTTP .


lighttpd - ще один вдалий вибір. Популярність nginx затьмарила його в багатьох місцях, але це, безумовно, поважний (і маленький) сервер
voretaq7

lighttpd + php-fcgi може зробити чудово.
Златко

1

node.js

Ви можете використовувати node.js для створення веб-сервера light waight. Дивіться наступний приклад із сайту підручника node.js:

var http = require('http');
  http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.write("Dynamic contents...");
      res.end('Hello World\n');
  }).listen(1337, "127.0.0.1");

console.log('Server running at http://127.0.0.1:1337/');

Наведений вище код - це сценарій java, тому ви можете написати свою динамічну логіку генерації коду в сценарії java і почати використовувати її в найкоротші терміни.

Вам доведеться завантажити та налаштувати node.js за посиланням: http: //nodejs.org/ для Windows або будь-якої іншої платформи, яку ви бажаєте використовувати.

Запустіть веб-сервер за допомогою команди:

node hello.js

Але чи говорить Node.js php?
Лукас Кауффман

Node.JS використовується в інших контекстах. Він не працює як окремий сервер, оскільки весь код є C ++. АЛЕ! Це чудово, тому що ви можете використовувати вузол для прямого доступу до GPIO та іншої частини апаратного забезпечення низького рівня, використовуючи node.js '+1 для різноманітності. Але вам все одно потрібен передній кінець, як apache / lighttpd / iis для подачі вмісту
Piotr Кула

@LucasKauffman Ні - це насправді не веб-сервер, а веб-додаток.
Алекс Чемберлен

1
Ласкаво просимо до обміну стеками. Приємна відповідь, але я боюся, що я спростував, оскільки я не думаю, що це вирішує питання. ОП бажав PHP, і майбутні читачі, ймовірно, захочуть трохи більш здатний сервер.
Алекс Чемберлен

1
Я запускаю Nagios, не розробляю власної програми: p
Лукас Кауффман

0

Можливо, ви можете поглянути на те, що використовували деякі інші люди на низьких коробках .

В основному, це lighttpd + php-fcgi. Lighttpd дійсно легкий, і php-fcgi можна налаштувати на використання небагато пам'яті. У мене це було встановлено на 64-мегабайтній VPS-коробці (не нагіоси, але CMS).

Також я не знаю, чи вам також потрібно оптимізувати MySQL, щоб використовувати як мінімум пам'яті .

Це може вам допомогти, а може і не. Я ще повинен почати використовувати свій Raspi :)


0

Сервери Mako і BarracudaDrive походять з одного джерела, і ці два сервери можуть доставляти динамічно генерований контент (за допомогою сценарію мови Lua) на 70% швидше, ніж Apache може доставляти статичний контент. Результати бенчмаркінгу можна знайти тут: http://barracudadrive.com/blog/2013/03/Apache-Nginx-Lighttpd-Monkey-and-BarracudaDrive-Speed-Test

Сервер Mako можна знайти тут: http://makoserver.net/


0

Я використовую комбінацію Nginx / Passenger для запуску на основі Ruby pi.gadgetoid.com 24/7 на Raspberry Pi 512Mb. Це кардинально перевершує налаштування Thin / Apache, якими я користувався раніше. Це досить загальнодоступний, публічний веб-сайт, хоча я багато обдурив, використовуючи Cloudflare (в основному проксі-кешування), щоб вирішити більшість цього обсягу.

Я впевнений, що ця конфігурація буде зручно сидіти на 256 Мб Pi, але у мене виникли проблеми зі складанням пасажирських модулів та Nginx; стикаються з обмеженнями пам'яті.

Я знаю, що це не рішення PHP, і я, швидше за все, змучусь запропонувати таку дотичну відповідь; але якщо ви шукаєте Пі, щоб просунути межі ваших знань, і робите це для випадкового майстерності, я настійно пропоную заглянути в Рубі та Сінатру. Протягом декількох тижнів у вас виникне ненависть до PHP.

За великим рахунком у вас не буде багато проблем із запуском веб-стека PHP / Apache на сервері 256 Мб. Я робив це для набагато більших сайтів з професійною можливістю хмарного хостингу. Коли MySQL втягується, речі стають некрасивими. Запуск повного стека LAMP на 256 Мб є найменш болючим, але не неможливим для малих обсягів трафіку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.