Linux: Установка nginx

nginx – веб сервер, работающий под Unix системами, последние версии так же можно использовать под Windows. Так же nginx может служить почтовым прокси сервером. В последнее время, после появления в nginx продвинутого кеширования, он завоевывает все больше веб-серверов живущих под большой нагрузкой. nginx служит хорошим реверсным прокси сервером и балансером нагрузки. Помимо этой, изначально основной функции, nginx замечательно работает с FastCGI серверами. Я практически повсеместно использую nginx с PHP-FPM, как альтернативу Apache + mod_php. Но, если под FreeBSD в принципе все хорошо с последними версиями nginx то вот к примеру под Debian Linux, nginx есть, но уж больно древней версии. Поэтому там, где нужно кеширование приходится собирать nginx ручками.

Для этого скачиваем nginx c официального сайта, я буду приводить примеры к последней на данный момент версии nginx.

 

Скачиваем:

wget http://sysoev.ru/nginx/nginx-0.8.27.tar.gz

 

распаковываем:

 

tar xvfz nginx-0.8.27.tar.gz

и теперь переходим в директорию и собираем:

cd nginx-0.8.27
./configure --http-fastcgi-temp-path=/var/tmp/nginx/fcgi-cache --with-pcre --prefix=/usr --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --user=www-data --group=www-data --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-proxy-temp-path=/var/tmp/nginx/proxy-cache
make
make install

Стартовый скрипт /etc/init.d/nginx такой:

#! /bin/sh
 
### 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 /var/run/$NAME.pid \
                --exec $DAEMON -- $DAEMON_OPTS || true
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
                --exec $DAEMON || true
        echo "$NAME."
        ;;
  restart|force-reload)
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --quiet --pidfile \
                /var/run/$NAME.pid --exec $DAEMON || true
        sleep 1
        start-stop-daemon --start --quiet --pidfile \
                /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true
        echo "$NAME."
        ;;
  reload) 
      echo -n "Reloading $DESC configuration: "
      start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \
          --exec $DAEMON || true
      echo "$NAME."
      ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
        exit 1
        ;;
esac
 
exit 0

это честно спертый от нативного nginx-а скрипт

Теперь активируем автозапуск nginx при загрузке:

update-rc.d nginx defaults

На этом установка nginx закончена. Только при активации кеширования помните, что кеш должен находится на том же разделе, что и временные файлы nginx.