Nginx

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

Содержание

Автозапуск nginx в RedHat

Этот скрипт был скопирован из блога А. Копылова. Я добавил только 2 строки для запуска elud. И убрал упоминание об nginxctl, который не использовался и у автора.

#!/bin/bash
#
# nginx        Startup script for the Nginx HTTP Server
#
# chkconfig: - 85 15
# description: Nginx is a fastest HTTP Server.
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/sbin/nginx.pid

. /etc/rc.d/init.d/functions

nginxd=${NGINXD-/usr/local/nginx/sbin/nginx}
prog=nginx
pidfile=${PIDFILE-/usr/local/nginx/logs/nginx.pid}
RETVAL=0

start() {
	echo -n $"Starting $prog: "
	daemon $nginxd
	RETVAL=$?
	echo
	return $RETVAL
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $nginxd -TERM
    RETVAL=$?
    echo
    [ $RETVAL = 0 ] && rm -f ${pidfile}
}

reload() {
    echo -n $"Reloading $prog: "
    killproc $nginxd -HUP
    RETVAL=$?
    echo
}

case "$1" in
  start)
    start
    elud start
    ;;
  stop)
    stop
    ;;
  status)
    status $nginxd
    RETVAL=$?
    ;;
  restart)
    stop
    start
    elud start
    ;;
  condrestart)
    if [ -f ${pidfile} ] ; then
	stop
	start
    fi
    ;;
  reload)
    reload
    ;;
  help)
    $nginxctl $@
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|help}"
    exit 1
esac

Для комплекта, пропись на runlevels 3, 4 и 5:

chkconfig --level 345 nginx on

nginxctl

Shuiyang написал для nginx скрипт-пускач, аналогичный широко известному apachectl. Я только убрал иероглифы и добавил запуск elud.

#!/bin/bash

nginx="/usr/bin/nginx"

restart="restart"

argv="$@"

pid=`/bin/ps auwx|/bin/grep nginx|/bin/grep master|/bin/awk '{print $2}'`
pidcount=`/bin/ps auwx|/bin/grep nginx|/bin/grep master|/bin/awk '{print $2}'|wc -l`
monitorpid=`/bin/ps auwx|/bin/grep "monitor process"|/bin/grep -v grep|/bin/awk '{print $2}'`
monitorpidcount=`/bin/ps auwx|/bin/grep "monitor process"|/bin/grep -v grep|/bin/awk '{print $2}'|wc -l`

ulimit -S -H -n 20480

case "$1" in
	restart)

		if [ $pidcount -gt 0 ]; then
			kill -HUP $pid
	   echo "nginx restarted"

		elud start
		else
			$nginx
			echo "nginx not running, trying to start"
		fi;
	;;
	stop)

		if [ $monitorpidcount -gt 0 ]; then
			kill -9 $monitorpid
			echo "kill nginx monitor process PID:" $monitorpid
		fi;

		if [ $pidcount -gt 0 ]; then
			kill -QUIT $pid
			echo "nginx master process stopped"
		else
			echo "nginx (no pid file) not running"
		fi;

	;;
	start)
		if [ $pidcount -gt 0 ]; then
			echo "nginx (pid $pid) already running"
			kill -HUP $pid
			echo "nginx restarted"
		else
			$nginx
			echo "trying to start"

		fi;
		elud start
	;;

	configtest)

		echo "";
		echo "...Test nginx.conf...";
		echo "";
		$nginx -t

	;;
	*)
	   cat <<EOF
start
restart
stop
configtest
EOF
	;;
esac

Сборка Nginx в .deb-пакет

Этот текст не имеет прямого отношения к Eludia, не был написан авторами данного сайта, а был скопирован из кэша Google и сохранён здесь, поскольку представляет ценность при инсталляции Eludia-приложений, а в первоисточнике, увы, недоступен.

Создадим папку, где мы будем проводить все работы

mkdir nginx && cd ./nginx

Качаем новейшую версию nginx’a с официальной страницы Игоря Сысоева - его главного разработчика.

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

Подготовим всё, что необходимо для сборки

Установим утилиты для сборки

sudo aptitude install build-essential debhelper dpkg-dev fakeroot devscripts

Установим зависимости

Вообще-то, их почти нет, но этот шаг я рекомендую делать всегда.

sudo apt-get build-dep nginx

Подготовим сырцы

Распакуем непосредственно сырцы

tar -xzvvf nginx-0.7.7.tar.gz

=== Скачаем с packages.debian.org патч для их дебианизации и разожмём его.

wget http://ftp.de.debian.org/debian/pool/main/n/nginx/nginx_0.6.32-1.diff.gz

gunzip *.diff.gz

Применим патч

cd ./nginx-*

patch -p1 --dry-run < ../nginx*.diff

Если предыдущая команда не выдала ошибок - патчим.

patch -p1 < ../nginx*.diff

Изменим версию

dch -i

Откроется знакомый nano и выдаст нечто вроде:

nginx (0.6.32-1ubuntu1) intrepid; urgency=low

*

-- Df_Yz Wed, 30 Jul 2008 20:58:14 +0300

Изменяем версию, дистрибутив и пишем “New upstream release”

Должно выйти примерно так:

nginx (0.7.7-1ubuntu1) hardy; urgency=low

* New upstream release

-- Df_Yz Wed, 30 Jul 2008 20:58:14 +0300

Сохраняем, выходим.

Делаем файл ./debian/rules исполняемым

chmod +x debian/rules

Переименовываем архив с сырцами

Он должен называться по такому правилу: программа_версия.orig.tar.gz

mv ../*.tar.gz ../nginx_0.7.7.orig.tar.gz

Собираем

dpkg-buildpackage -rfakeroot

После сборки .deb-пакеты будут лежать на уровень выше.

Устанавливаем собранные пакеты

sudo dpkg -i ../*.deb
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Разработчику
Администратору
Инструменты