Apache по сравнению с Nginx

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

Область безопасности является настолько большой, тот запуск с цели: "Я буду экспертом судебно-медицинской экспертизы". поможет Вам определить то, что Вы изучите.

29
задан 6 July 2010 в 01:22
3 ответа

У Вас, кажется, есть несколько неправильных представлений, которые я чувствую потребности, которые будут обращены.

В первую очередь, mod_php только незначительно быстрее, все мои тесты показали, что различие является столь крохотным, что в это не стоит включать. Я также сомневаюсь, что аспект безопасности относится к Вам, поскольку Вы, кажется, смотрите на выделенный сервер, и mod_php действительно только имеет преимущество в общей среде - на самом деле, в выделенной среде php-fpm будет иметь преимущество как PHP, и Ваш веб-сервер теперь работает как различные процессы, и это даже не включает в потрясающие опции входа в php-fpm, такие как медленный журнал.

Если бы мир был черным и белым, то я сказал бы, идут с чистой установкой nginx и компилируют php с php-fpm. Более реалистично, если у Вас уже есть Apache, работающий, затем делают nginx обратным прокси апачу, и Вы могли бы сохранить несколько часов времени установки, и разница в производительности будет крошечной.

Но позволяет, предполагают, что мир является черным и белым в течение секунды, потому что это делает для намного более потрясающих установок. Вы делаете nginx + php-fpm для Вашего веб-сервера. Для решения загрузок, Вы используете модуль загрузки и загружаете модуль прогресса для nginx. Это означает, что Ваш веб-сервер принимает загрузку и передает путь к файлу на PHP, когда это сделано, так, чтобы файл не должен был быть передан потоком между nginx и PHP по fastcgi протоколу, сладкому. (У меня есть это в живой установке, и она работает отлично, btw!)

Поскольку пользователь, загружающий Вас, используют nginxs x-send-file-like функция, названная x-accel-redirect, по существу Вы делаете свою аутентификацию в PHP и устанавливаете заголовок, на котором nginx берет и запускает передачу тот файл. Выполнение концов PHP и Ваш веб-сервер обрабатывают передачу, сладкую! (Снова, у меня есть это в живой установке, и она работает отлично),

Для распределительных файлов через серверы или другие длительные операции мы понимаем, что PHP не действительно подходит лучше всего для этого, таким образом, мы устанавливаем gearman, который является сервером задания, который может распределить задания между рабочими на различных серверах, эти рабочие могут быть записаны на любом языке. Поэтому можно создать распределять рабочего и метать икру, 5 из них использующий в общей сложности 200 КБ памяти вместо PHP на 100 МБ использовали бы. Сладкий. (У меня также есть это рабочее живое, таким образом, это все на самом деле возможно),

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

Я настоятельно рекомендовал бы nginx, но я также думаю, что необходимо посмотреть на другие опции для других проблем, если у Вас есть проблема масштабирования или производительности, затем не стесняются писать мне. Я не знаю, можно ли отправить сообщения через сюда, но иначе записать мне по martin@bbtn.us, поскольку я не преследую отказ сервера ни для чего не отмеченного с nginx.:)

28
ответ дан 28 November 2019 в 20:01
  • 1
    Чертовски это действительно разрешило вещи :) спасибо, который был объяснением, которое я искал. Я думаю, что довольно продаюсь при изучении Nginx теперь, так как Apache дросселировал бы и умер бы, использовав мой сайт. К счастью, выглядит действительно довольно легким преодолеть его. Я подразумеваю, что люди на node.js сказали, что запись, большинство вещей в этом и только опрашивает Ваш php класс сессии, если Вам действительно нужно к (который я делаю, если нет способ обнаружить, когда пользователи закрывают свои окна :P). Да я работаю на крупной ферме сервера, настолько знающей, что нет никакой угрозы нарушения безопасности, помогает тоннам, спасибо за большое объяснение :) –  Sammaye 5 July 2010 в 21:59
  • 2
    я смотрел на это: joeandmotorboat.com/2008/02/28 / … и это: blog.webfaction.com/a-little-holiday-present и это действительно получили меня kiddying при мысли о способности к долгому опросу к моему содержанию основ действительно. Ни одна проблема памяти в отличие от Бессмысленных данных Apache :) –  Sammaye 5 July 2010 в 22:02
  • 3
    Ожидайте так свое высказывание, что я мог сделать рабочего мультипотока в Java, и php может работать вокруг этого отлично? Я имею в виду самую большую проблему, которую я вижу, сервер, так как я получаю значительные проблемы памяти с Apache с помощью долгого опроса, который распространен... отдел, зафиксированный Nginx. –  Sammaye 6 July 2010 в 00:41
  • 4
    По существу да, мне записали рабочие распределения файла в C, с помощью gearman расширения для PHP, который я отправляю заданию распределения на gearman сервер задания, и это отсылает его рабочему, который может быть записан на любом языке; PHP, Java, C, и т.д. Этот рабочий затем делает это - задание и сообщает состояние к gearman, который сообщает PHP. (если фоновое задание не было выбрано, в этом случае концы PHP, не ожидая его) –  Martin Fjordvald 6 July 2010 в 02:43

Я предложил бы выполнить nginx как обратный прокси. Это обработает все Ваши статические и кэшируемые файлы (где это значительно более быстро, чем Apache / меньше памяти наверху), и затем передайте все запросы для динамического контента к Apache.

5
ответ дан 28 November 2019 в 20:01
  • 1
    Да это - то, что большинство людей, кажется, делает банкомат, я должен буду определенно изучить этот :) –  Sammaye 5 July 2010 в 12:13
  • 2
    , Не забывают устанавливать mod_rpaf для Apache так, чтобы можно было пройти через клиентские IP-адреса для входа целей (иначе, журналы Apache покажут все запросы, как являющиеся от 127.0.0.1), добавьте следующее в конфигурацию nginx: proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; –  Greg Annandale 5 July 2010 в 12:29
  • 3
    я действительно задаюсь вопросом одна вещь, прежде чем я попробую это сегодня вечером. Если я направляю через Nginx к Apache, который служит моему PHP, который означает, что долгий опрос все еще имел бы те же проблемы как Apache или делает вызов, он в обратном прокси заставляет Apache действовать по-другому в некотором роде? –  Sammaye 5 July 2010 в 14:55

Я не так уверен, что mod_php быстрее, чем его альтернативы, где Вы читали это? Я сделал некоторое лабораторное тестирование с nginx+php-fpm, и от того, что я измерил, оно бьет любую установку.

Смотрите на эту установку: http://interfacelab.com/nginx-php-fpm-apc-awesome/

Я настроил его почти то же, за исключением того, что я использую пакеты PHP из http://www.dotdeb.org/ - который включает php-fpm пакет и init сценарий, готовый использовать. Я не использую memecache или syck.

1
ответ дан 28 November 2019 в 20:01
  • 1
    stackoverflow.com/questions/78108 / … получил его отсюда, и я проверил php руководство, и это действительно говорит, что php_mod обеспечивает значительное преимущество перед cgi версиями. Ваша установка выглядит хорошей. Это выглядит очень легким также. Я изучу его :) –  Sammaye 5 July 2010 в 12:49
  • 2
    , Это указывает, что CGI намного медленнее, чем встроенный модуль - не FastCGI :) –  pauska 5 July 2010 в 12:52
  • 3
    Хорошо - если Вы волнуетесь о смерти процессов PHP (или таймаут) затем, FastCGI (или PHP-FPM) является способом пойти. Это может избавиться от мертвых дочерних процессов, не прерывая другие операции. –  pauska 5 July 2010 в 13:30
  • 4
    Да. Или, ну, в общем, это зависит. Сколько (максимального) количества медленных запросов Вы обработаете одновременно? Макс. PHP FPM набора распараллеливает к этому плюс количество "быстрого" cgi's, Вы хотите avaible. Я услышал о людях, выполняющих 200 PHP-FPM childs на сервере с 4 ГБ RAM, таким образом, я не волновался бы слишком много об этом на вашем месте. Следующая версия PHP (5.3.3) будет включать PHP-FPM по стандарту, где также существует адаптивный включенный механизм - это масштабируется согласно тому, сколько запросов у Вас есть ожидание. грач –  pauska 5 July 2010 в 14:18
  • 5
    , я легко работал бы на основе нескольких серверов (возможно, до 10), но если я могу соответствовать 200 запросам, которые могут долго опрашиваться на сервере на 4 ГБ, это должно почти половина 20 серверов, мне был бы нужен рабочий Apache. hmmmm... Сегодня вечером я должен буду проверить это –  Sammaye 5 July 2010 в 15:44

Теги

Похожие вопросы