VDSPlanet.ru Making the difference in VDS Hosting
Nginx

Материал из Wiki.VDSPlanet.ru.

Перейти к: навигация, поиск


Содержание

Установка nginx

Как и у любого ПО под linux есть два способа установки: из пакетов (это вариант самый простой, но производит установку достаточно старой верии) и сборка из исходных кодов(сложнее первого, но позволяет получиться ПО последней версии).

Установка из пакетов системы debian/ubuntu

 apt-get install nginx

Установка из пакетов системы Centos/Fedora

...

Сборка из исходных кодов

Создаем временную папку, переходим туда и скачиваем исходные коды

 mkdir /tmp/nginx; cd /tmp/nginx  
 wget http://sysoev.ru/nginx/nginx-0.7.61.tar.gz
 tar -xvf nginx*
 cd nginx*

Сам процесс сборки представляет из себя 3 этапа: конфигурирование, сборка и собственно установка в систему. В общем случае достаточно запустить конфигурирование без параметров.

 ./configure

Однако, я изменил расположение файлов

 ./configure --prefix=/etc/nginx 
--sbin-path=/usr/sbin/nginx 
--conf-path=/etc/nginx/nginx.conf 
--pid-path=/etc/nginx/logs/nginx.pid 
--error-log-path=/etc/nginx/logs/error.log 
--http-log-path=/etc/nginx/logs/access.log 
--user=www-data --group=www-data 
--with-http_ssl_module

Полное описание ключей доступно по ссылке [ http://sysoev.ru/nginx/docs/install.html] Собираем программу

 make

и устанавливаем

 make install

создание скрипта для старта/остановки

Копируем данный код в /etc/init.d/nginx Запуск осуществляется командой /etc/init.d/nginx start; Остановка - /etc/init.d/nginx stop; Команда restart|reload работает непредсказуемо, не используйте её

 #! /bin/sh
 ##exit 0
 ### BEGIN INIT INFO
 # Provides:          nginx
 # Required-Start:    $all
 # Required-Stop:     $all
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: starts the nginx web server
 # Description:       starts nginx using start-stop-daemon
 ### END INIT INFO
 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 DAEMON=/usr/sbin/nginx
 NAME=nginx
 DESC=nginx
 test -x $DAEMON || exit 0
 # Include nginx defaults if available
 if [ -f /etc/default/nginx ] ; then
 	. /etc/default/nginx
 fi
 set -e
 case "$1" in
 start)
 	echo -n "Starting $DESC: "
 	start-stop-daemon --start --quiet --pidfile /etc/nginx/logs/$NAME.pid \
 		--exec $DAEMON -- $DAEMON_OPTS
 	echo "$NAME."
 	;;
 stop)
 	echo -n "Stopping $DESC: "
 	start-stop-daemon --stop --quiet --pidfile /etc/nginx/logs/$NAME.pid \
 		--exec $DAEMON
 	echo "$NAME."
 	;;
   restart|force-reload)
 	echo -n "Restarting $DESC: "
 	start-stop-daemon --stop --quiet --pidfile \
 		/etc/nginx/logs/$NAME.pid --exec $DAEMON
 	sleep 1
 	start-stop-daemon --start --quiet --pidfile \
 		/etc/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
 	echo "$NAME."
 	;;
   reload)
   echo -n "Reloading $DESC configuration: "
       start-stop-daemon --stop --signal HUP --quiet --pidfile /etc/nginx/logs/$NAME.pid \
           --exec $DAEMON
         echo "$NAME."
      ;;
   *)
 	N=/etc/init.d/$NAME
 	echo "Usage: $N {start|stop|restart|force-reload}" >&2
 	exit 1
 	;;
   esac
 
   exit 0

Настройка php в режиме fastcgi

Подробно описана в статье php-fastcgi

Конфигурирование виртуальных серверов

создадим помимо конфигурационного(обычно /etc/nginx/nginx.conf) файла еще два. /etc/nginx/listen.conf - перечислим все порты и адреса, который будем слушать. Например:

 listen          80;
 listen       209.250.241.122:80;

/etc/nginx/vhost.conf - общие настройки для всех виртуальных серверов

 error_page  404              /404.html;
 error_page  401              /401.html;
 error_page   500 502 503 504  /50x.html;
 location = /50x.html { root   /var/www/nginx-default; }
 location = /404.html { root   /var/www/nginx-default; }
 location = /401.html { root   /var/www/nginx-default; }
 location ~ \.php$ {
   fastcgi_intercept_errors on;
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_index  index.php;
  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  include        /etc/nginx/fastcgi.conf;
  }
 location ~ /\.ht {
 deny  all;
 }

Создав эти два файла мы можем достаточно просто добавлять в /etc/nginx/nginx.conf сервера. Например.

 server {
  include /etc/nginx/listen.conf;
  server_name qwerty.name  www.qwerty.name somealias.name;
  access_log  /home/pub/~nginx.qwerty.name.log;
  location / {
   root   /home/pub/qwerty.name;
   index  index.html index.htm index.php;
   include /etc/nginx/vhost.conf;
  }
 }

Не забываем перезапускать после внесения изменений. /etc/init.d/nginx stop;/etc/init.d/nginx start;

Источник — «http://wiki.vdsplanet.ru/Nginx»