nginx
- легкий веб-сервер, который может поддерживать намного больше
одновременных подключений чем apache и быстрее отдает статический
контент (html, css, картинки, flash и т.д.) у него нету встроенной
поддержки php, но можно использовать nginx+fcgi, где php будет работать
через fcgi модуль.
apache - в нем конечно больше функционала,
есть поддержка php и много других модулей под разные потребности, он
будет попрожерливей для системы также.
В основном, для
невисоконагруженных проэктов достаточно использовать apache,
функционала которого будет достаточно для большинства задач. Также есть
поддержка .htaccess файлов, в котором пользователи могут отдельно для
своего сайта менять разные параметры, прописывать перенаправления.
Для
общего-виртуального хостинга большого количества сайтов и под проэкт с
хорошим посещением оптимальный вариант использовать свзязку
nginx+apache. Nginx будет настроен чтобы отдавать всю статику, а
выполнение php скриптов будет передавать веб-серверу apache. Также, в
чем плюс подобной связки, например если у посетителя плохое интернет
соединение, тогда apache не закроет подлючение пока не отдаст результат
запроса, а при связке с nginx, рельутат он отдает nginx, а уже легкий
веб-сервер передает клиентскому хосту, и таким образом подключения
быстрее освобождаются для apache. Также, при связке nginx+apache уже на
проксирующем nginx можно фильтровать разные подключения не нагружая
apache и не забивая его лишними ненужными подключениями.
Для высоконагрженных проэктов часто используется nginx+php-fcgi.
примеров конфигурации итак в гугле достаточно ... не охота копировать просто ...
смысл какой:
nginx слушает 80 порт, apache настраиваем любой другой например 8080 или 81.
в nginx прописываются расширения файлов, которые он будет обрабатывать, например .csss .jpg .flv .gpeg и т.д, то есть статику.
остальное,
что не прописано, будет передаваться в apache, дальше apache
обрабатывает php код и отдает в nginx результат, а nginx уже возвращает
результат посетителю.