Назад | Перейти на главную страницу

Оптимизировать Apache - следует ли использовать APC / nginx?

Я прочитал много сообщений об оптимизации Apache. Во время чтения два имени повторялись снова и снова, nginx и php-apc.

Я пытался понять, какие из них могут быть мне полезны, но однозначного ответа не нашел. Мне нужен мой сервер для поддержки около 10 тыс. Подключений. Сервер имеет 5 ГБ оперативной памяти и 4 процессора.

  1. Мой вопрос в том, какой из них я должен использовать?
  2. Мне нужно изменить свой код, чтобы лучше использовать APC и nginx?
  3. Использует ли nginx удалит какие-либо способности с веб-сервера?
  4. Я что-нибудь упускаю? есть ли что-то базовое, что я пропускаю?

Информация об Apache:

[root@web conf]# httpd -V
Server version: Apache/2.2.3
Server built:   Sep  3 2009 17:38:51
Server's Module Magic Number: 20051115:3
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

Спасибо!

РЕДАКТИРОВАТЬ

Сайт будет использоваться для обработки видео с использованием flash-rtmp для обработки видео и php (cake) и js для всего остального.

apc действует как модуль PHP, тогда как nginx является веб-сервером и работает с php через интерфейс cgi. Вкратце, настройка веб-сервера - непростая задача, и выбор платформы зависит от многих вещей. 10k подключений - что это значит, 10k параллельных загрузок? Если видео доставляется в виде файлов на тот же сервер - проблем с apache быть не должно. лучше подумайте о дисковом вводе-выводе и сети, если вы обрабатываете видео - я уверен, что процессор не справится с этим. Если вы используете этот php-сайт для поддержки потокового видео, обрабатываемого другим сервером, вероятно, не будет массивных запросов, связанных с php, поэтому вы можете делать это с чем угодно, даже без жесткой оптимизации.

Мой вопрос в том, какой из них я должен использовать?

  • Вы можете использовать APC в любой ситуации, но для nginx - зависит. Конфигурация Nginx по умолчанию более эффективна, чем apache httpd, но после правильной настройки вы можете получить почти такие же результаты с httpd.

Нужно ли мне изменить свой код, чтобы лучше использовать APC и nginx?

  • Для APC - не имеет значения, при использовании nginx вы потеряете некоторые дополнительные функции, доступные на более распространенном веб-сервере Apache httpd. Может тебе нужно что-то исправить

Удаляет ли использование nginx какие-либо возможности веб-сервера?

  • Да многие, другой вопрос, пользуетесь ли вы им

Я что-нибудь упускаю? есть ли что-то базовое, что я пропускаю?

  • Текущая рабочая нагрузка, узкое место - использование ЦП, сеть, соединения и т. Д. APC снизит загрузку ЦП, увеличит использование ОЗУ. http можно использовать с разными моделями. Как я вижу, у вас есть 32-битный apache RHEL5 / Centos5. По крайней мере, используйте соответствующее ядро ​​(ядро-PAE), чтобы использовать все 5 ГБ ОЗУ. Я не буду рекомендовать текущую модель apache в вашем случае (смените модель в / etc / sysconfig / httpd). Вы можете использовать php как модуль, так и через cgi (mod_fcgid).

Это далеко от деталей конфигурации - нужно настроить множество вещей, в том числе процесс респауна и т. Д.

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