Материал из 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;

