Сегодня мы будем заниматься легким веб сервером nginx (http://sysoev.ru), который мне понадобился для раздачи небольшого количества статики.
Сама установка выглядит довольно тривиально: сливаем дистрибутив 0.6й ветки вот отсюда: http://sysoev.ru/nginx/download.html и ставим тривиальным набором команд :
mkdir -p ~/nginx
cd ~/nginx
wget http://sysoev.ru/nginx/nginx-0.6.31.tar.gz
tar -xf nginx*
cd nginx*
./configure --prefix=/opt/nginx
make
sudo make install
Довольно стандартная схема без всяких сложностей... ну разве configure скрипт попросит вас поставить zlib и pcre, но относить это к сложностям как-то несерьёзно :) Как Вы могли заметить, мы ставим nginx не в саму систему, а в папку /opt/nginx, так как захламлять рабочую систему кучей хлама у меня лично нету никакого настроения.
Ну а теперь стоит вопрос, как нам все это дело удобно использовать (ну не каждый же день руками делать /opt/nginx/sbin/nginx), а в связи с тем, что в поставке nginx я не обнаружил готового скрипта для init.d, то нам придётся его писать или найти готовый (полагаю, второй вариант намного предпочтительнее) :)
Конечно же, я нашел готовый и его немного модифицировал, оригинал же взят отсюда: http://ssh3.livejournal.com/29252.html?thread=32836 , за что большое спасибо автору.
Скрипт управления сервером nginx:
#!/bin/bash # v.0.0.3 # nginx - This shell script takes care of starting and stopping nginx. # chkconfig: 345 20 80 # author site: nginx.net, sysoev.ru # description: nginx [engine x] is light http web/proxy server # that answers incoming ftp service requests. # processname: nginx # config: /opt/nginx/conf/nginx.conf # # Исходная версия: http://ssh3.livejournal.com/29252.html?thread=32836 # Изменённая версия: nrg [ at ] cpan [ dot ] org ( http://phpsuxx.blogspot.com/ ) # # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 RETVAL=0 NGINX=/opt/nginx CONFIG=$NGINX/conf/nginx.conf EXEC=$NGINX/sbin/nginx PID=$NGINX/logs/nginx.pid PROG=nginx [ -x $EXEC ] || exit 0 start() { echo -n $"Starting NGINX: " # Start daemons. if [ -e $CONFIG ] ; then $EXEC -t -c $CONFIG 2> /dev/null [ $? -eq 0 ] && $EXEC -c $CONFIG & RETVAL=$? else RETVAL=1 fi if [ $RETVAL -eq 0 ] ; then echo_success else echo_failure fi echo return $RETVAL } stop() { # Stop daemons. if [ -e $PID ] ; then echo -n "Shutting down $PROG: " kill -QUIT `cat $PID` RETVAL=$? else echo -n "Nginx not runned." RETVAL=1 fi if [ $RETVAL -eq 0 ] ; then echo_success else echo_failure fi echo return $RETVAL } restart() { # Reload daemons. if [ -e $PID ] ; then echo -n "Reload $PROG: " kill -HUP `cat $PID` RETVAL=$? else echo -n "Nginx not runned." RETVAL=1 fi if [ $RETVAL -eq 0 ] ; then echo_success else echo_failure fi echo return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) restart ;; reconfigure) restart ;; status) status $NAME RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|reconfigure|status}" exit 1 esac exit $RETVAL
Теперь остаётся добавить скрипт в систему и все заработает,
как это сделать я описывать отдельно не буду, ssh3 отлично описал этот пункт,
поэтому позволю себе немного плагиата :)
Для автоматического страрта при загрузке системы достаточно скопировать
стартовый скрипт nginx в каталог /etc/init.d и выполнить следующие
команды:
#chkconfig --add nginx
#chkconfig --level 345 nginx on
Проверить статус можно командой:
#chkconfig --list | grep nginx
nginx 0:off 1:off 2:off 3:on 4:on 5:on 6:off
Ну вот, вроде, и все, в идеале, конечно, из этого стоило бы собрать deb / rpm пэкадж, но это уже дело каждого.
ssh3
ReplyDeleteэтот журнал был окончательно уничтожен
Зачем и кому может понадобится сбокра нгикнса из сорцов? ) Есть чудесный оф репо! nginx.org!
Deletenginx не поддерживает подключение модулей на лету....
Delete