Установка Nginx
Nginx - популярный веб-сервер (аналог апача), отличающейся высокой производительностью и гибкими настройками.
Установить nginx можно двумя способами:
- установить rpm-пакет из репозитария - предпочтительный вариант
- собрать вручную из исходников
Установка Nginx из репозитория
На данный момент rpm-пакет nginx не включен в родной репозиторий CentOS, поэтому нужно подключить дополнительные репы, например: как подлючить CentALT репозиторий
[root@server ~]# yum install nginx-stable
или
[root@server ~]# yum install nginx
(отличия пакетов видно из названий)
добавляем nginx в автозагрузку:
[root@server ~]# /sbin/chkconfig --levels 235 nginx on
запускаем сервис(демон) Nginx:
[root@server ~]# /sbin/service nginx start
или
[root@server ~]# /etc/init.d/nginx start
если не получится стартануть с первого раза, можно попробовать ребутнуть сервер, иногда помогает.
Если веб-сервер nginx работает один, без нод, то лучше ему в случае связки nginx+fastcgi слушать unix сокет, вместо tcp-сокета
Установка и настройка PHP-FPM
[root@server ~]# yum install php-fpm /sbin/chkconfig --levels 235 php-fpm on
в файле конфига php-fpm: /etc/php-fpm.d/www.conf (или какой-то другой файл) меняем опции следующим образом:
... listen = /tmp/phpcgi.socket .... user = nginx group = nginx
после изменения прослушки tcp/ip сокета на unix-сокет, нужно тоже самое сделать в nginx, а именно проксировать трафик через:
fastcgi_pass unix:/tmp/phpcgi.socket;
через юникс-сокет работает чуть быстрее за счет удаления лишнего слоя абстракции. Для корректной работы php-сессий нужно сделать так:
mkdir /var/lib/php/session chown root:nginx /var/lib/php/session chmod 775 /var/lib/php/session
если при апдейте системы права-владелец /var/lib/php/session сбрасываются на apache, то такое исправить можно так:
usermod -a -G apache nginx
Конфиг nginx
чтобы не было 502 ошибки для долгих бэкендов (php-скриптов):
fastcgi_read_timeout 60m;