Установка Nginx

Материал из Chesser Wiki
Перейти к: навигация, поиск

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;

Ссылки