<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_nginx_%D0%BD%D0%B0_Debian</id>
	<title>Сборка nginx на Debian - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_nginx_%D0%BD%D0%B0_Debian"/>
	<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_nginx_%D0%BD%D0%B0_Debian&amp;action=history"/>
	<updated>2026-04-03T20:31:55Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.1</generator>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_nginx_%D0%BD%D0%B0_Debian&amp;diff=651&amp;oldid=prev</id>
		<title>imported&gt;Vix: Новая страница: «=='''Custom-сборка nginx на Debian'''==  В данном посте описываются действия, которые позволяют измен…»</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=%D0%A1%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_nginx_%D0%BD%D0%B0_Debian&amp;diff=651&amp;oldid=prev"/>
		<updated>2013-08-26T18:54:27Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «==&amp;#039;&amp;#039;&amp;#039;Custom-сборка nginx на Debian&amp;#039;&amp;#039;&amp;#039;==  В данном посте описываются действия, которые позволяют измен…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=='''Custom-сборка nginx на Debian'''==&lt;br /&gt;
&lt;br /&gt;
В данном посте описываются действия, которые позволяют изменить конфигурацию компиляции и собрать nginx из исходников Debian пакета.&lt;br /&gt;
&lt;br /&gt;
Последовательность действий такова:&lt;br /&gt;
&lt;br /&gt;
*Скачать исходники пакета nginx&lt;br /&gt;
*Распаковать исходники.&lt;br /&gt;
*Изменить конфигурацию.&lt;br /&gt;
*Собрать пакет.&lt;br /&gt;
&lt;br /&gt;
Начнем с того, что установим необходимые библиотеки:&lt;br /&gt;
&lt;br /&gt;
 aptitude install dpkg-dev&lt;br /&gt;
&lt;br /&gt;
Далее необходимо найти нужную версию nginx здесь: http://snapshot.debian.org/package/nginx/. Данный ресурс хранит все пакеты, которые когда-либо присутствовали в Debian. Для примера мы выбрали версию 0.8.54-4. Создадим временную папку и загрузим туда необходимые файлы:&lt;br /&gt;
&lt;br /&gt;
 mkdir /tmp/nginx&lt;br /&gt;
 cd /tmp/nginx/&lt;br /&gt;
 wget [http://snapshot.debian.org/archive/debian/20110305T151450Z/pool/main/n/nginx/nginx_0.8.54-4.debian.tar.gz]http://snapshot.debian.org/archive/debian/20110305T151450Z/pool/main/n/nginx/nginx_0.8.54-4.debian.tar.gz&lt;br /&gt;
 [http://snapshot.debian.org/archive/debian/20110305T151450Z/pool/main/n/nginx/nginx_0.8.54-4.dsc]http://snapshot.debian.org/archive/debian/20110305T151450Z/pool/main/n/nginx/nginx_0.8.54-4.dsc &lt;br /&gt;
 [http://snapshot.debian.org/archive/debian/20101231T205910Z/pool/main/n/nginx/nginx_0.8.54.orig.tar.gz]http://snapshot.debian.org/archive/debian/20101231T205910Z/pool/main/n/nginx/nginx_0.8.54.orig.tar.gz&lt;br /&gt;
&lt;br /&gt;
Далее распакуем пакет исходных кодов в папку:&lt;br /&gt;
	&lt;br /&gt;
 dpkg-source -x nginx_0.8.54-4.dsc&lt;br /&gt;
&lt;br /&gt;
Теперь следует по своему вкусу осуществить редактирование параметров конфигурирования компиляции, которые расположены в файле nginx-0.8.54/debian/rules. Я обычно беру сборку nginx-full и просто добавляю/убираю пункты. Например, может получиться такая конфигурация, в которой исключены mail-модули:&lt;br /&gt;
&lt;br /&gt;
 config.status.full: config.env.full config.sub config.guess&lt;br /&gt;
    cd $(BUILDDIR_full) &amp;amp;&amp;amp; ./configure \&lt;br /&gt;
        --conf-path=/etc/nginx/nginx.conf \&lt;br /&gt;
        --error-log-path=/var/log/nginx/error.log \&lt;br /&gt;
        --http-client-body-temp-path=/var/lib/nginx/body \&lt;br /&gt;
        --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \&lt;br /&gt;
        --http-log-path=/var/log/nginx/access.log \&lt;br /&gt;
        --http-proxy-temp-path=/var/lib/nginx/proxy \&lt;br /&gt;
        --http-scgi-temp-path=/var/lib/nginx/scgi \&lt;br /&gt;
        --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \&lt;br /&gt;
        --lock-path=/var/lock/nginx.lock \&lt;br /&gt;
        --pid-path=/var/run/nginx.pid \&lt;br /&gt;
        --with-debug \&lt;br /&gt;
        --with-http_addition_module \&lt;br /&gt;
        --with-http_dav_module \&lt;br /&gt;
        --with-http_geoip_module \&lt;br /&gt;
        --with-http_gzip_static_module \&lt;br /&gt;
        --with-http_image_filter_module \&lt;br /&gt;
        --with-http_realip_module \&lt;br /&gt;
        --with-http_stub_status_module \&lt;br /&gt;
        --with-http_ssl_module \&lt;br /&gt;
        --with-http_sub_module \&lt;br /&gt;
        --with-http_xslt_module \&lt;br /&gt;
        --with-http_degradation_module \&lt;br /&gt;
        --with-http_random_index_module \&lt;br /&gt;
        --with-http_secure_link_module \&lt;br /&gt;
        --without-mail_pop3_module \&lt;br /&gt;
        --without-mail_imap_module \&lt;br /&gt;
        --without-mail_smtp_module \&lt;br /&gt;
        --with-ipv6 \&lt;br /&gt;
        --with-sha1=/usr/include/openssl \&lt;br /&gt;
        --with-md5=/usr/include/openssl \&lt;br /&gt;
        --add-module=$(MODULESDIR)/nginx-upstream-fair \&lt;br /&gt;
            $(CONFIGURE_OPTS) &amp;gt;$@&lt;br /&gt;
&lt;br /&gt;
После того, как все изменения внесены, соберем deb-пакет следующей командой (которую необходимо выполнить из каталога, куда были распакованы исходные коды пакета):&lt;br /&gt;
&lt;br /&gt;
 dpkg-buildpackage -uc -b -us&lt;br /&gt;
&lt;br /&gt;
Полученные deb файлы после окончания сборки будут лежать в каталоге выше (в нашем случае /tmp/nginx), после этого останется установить пакет nginx-common и nginx-full (или другой, смотря какой был редактирован в файле rules).&lt;br /&gt;
&lt;br /&gt;
Еще одна настройка, которая будет полезна некоторым - это блокирование обновления пакетов. Осуществляется это следующими командами:&lt;br /&gt;
&lt;br /&gt;
 echo nginx-common hold | dpkg --set-selections&lt;br /&gt;
 echo nginx-full hold | dpkg --set-selections&lt;br /&gt;
&lt;br /&gt;
*статья взята тут:[http://xstupidkidzx.blogspot.com/2011/09/custom-nginx-debian.html]http://xstupidkidzx.blogspot.com/2011/09/custom-nginx-debian.html&lt;br /&gt;
*готовые сборки тут:[http://adminco.org/2010/08/sborka-paketov-nginx-dlya-debian/]http://adminco.org/2010/08/sborka-paketov-nginx-dlya-debian/&lt;br /&gt;
&lt;br /&gt;
=='''Правильная сборка с соблюдением всех нюансов Debian'''==&lt;br /&gt;
&lt;br /&gt;
NodeSquad&lt;br /&gt;
&lt;br /&gt;
среда, 5 октября 2011 г.&lt;br /&gt;
Сборка Nginx под Debian&lt;br /&gt;
Поставим сначала пакеты. Возможно вам пригодятся еще какие-то, но об этом вы узнаете, если какая-то команда не запустится:&lt;br /&gt;
&lt;br /&gt;
    apt-get install libpcre++-dev libssl-dev libgeoip-dev dh-make autotools-dev gcc-4.3 debhelper devscripts&lt;br /&gt;
&lt;br /&gt;
Также перед началом вписываем себе в переменное окружение (~/.bashrc) наши опознавательные знаки:&lt;br /&gt;
&lt;br /&gt;
    DEBEMAIL=&amp;quot;email.address@example.org&amp;quot;&lt;br /&gt;
    DEBFULLNAME=&amp;quot;Имя Фамилия&amp;quot;&lt;br /&gt;
    export DEBEMAIL DEBFULLNAME&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
И применяем их:&lt;br /&gt;
&lt;br /&gt;
    source ~/.bashrc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Переходим в директорию, где будем работать:&lt;br /&gt;
&lt;br /&gt;
    cd /usr/src&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Выбираем нужную версию программы на сайте. И скачиваем её:&lt;br /&gt;
&lt;br /&gt;
    wget http://nginx.org/download/nginx-1.0.8.tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Распаковываем, но сам тарбол не стираем и оставляем его на месте(!!!):&lt;br /&gt;
&lt;br /&gt;
    tar xzf nginx-1.0.8.tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь нужно переименовать директорию с сорцами, потому что далее сборщик deb-пакета возьмет название и номер версии отсюда. Правило одно - слева имя пакета (оставим его nginx, чтобы он заменял стандартный) и следом первый дефис. А второй дефис разделяет версию пакета и версию мейнтейнера. И никаких подчеркиваний! Итак меняем версию:&lt;br /&gt;
&lt;br /&gt;
    mv nginx-1.0.8 nginx-1.0.8-nsq1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
И переходим в эту директорию:&lt;br /&gt;
&lt;br /&gt;
    cd nginx-1.0.8-nsq1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*************************&lt;br /&gt;
Начало необязательной части, которую можно пропустить.&lt;br /&gt;
Возможно кому-то захочется скрыть версию пакета в целях безопасности. Делается это либо директивой server_tokens = Off позже в конфиге либо сейчас правкой 49-й строки здесь:&lt;br /&gt;
&lt;br /&gt;
    vi +49 src/http/ngx_http_header_filter_module.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Если кому хочется, можно поменять конфиг сразу, чтобы пакет разворачивался уже с готовым конфигом:&lt;br /&gt;
&lt;br /&gt;
    vi conf/nginx.conf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Можно также добавить модули Nginx.&lt;br /&gt;
&lt;br /&gt;
Конец необязательной части.&lt;br /&gt;
*************************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Деперь &amp;quot;дебианизируем&amp;quot; пакет:&lt;br /&gt;
&lt;br /&gt;
    dh_make --single -f ../nginx-1.0.8.tar.gz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В результате в этой директории появилась поддиректория debian, а уровнем выше, где мы оставили тарбол, появилась копия тарбола с надписью orig.&lt;br /&gt;
&lt;br /&gt;
Поправим пару параметров перед сборкой. Например Description (один пробел слева как на образце обязателен):&lt;br /&gt;
&lt;br /&gt;
    vi debian/control&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    Description: small, but very powerful and efficient web server&lt;br /&gt;
     Nginx (engine x) is a web server created by Igor Sysoev and kindly provided&lt;br /&gt;
     to the open-source community. This server can be used as standalone HTTP&lt;br /&gt;
     server and as a reverse proxy server before some Apache or another big&lt;br /&gt;
     server to reduce load to backend servers by many concurrent HTTP-sessions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Далее делаем вещь, специфическую для nginx - запрещаем стандартную автоконфигурацию и вписываем свою (ВНИМАНИЕ: перед строкой ./configure --pref..., которая во второй строке, не должно быть ни одного пробела и только один [Tab]. Иначе сборщик не заметит эту строку и конфигурация не пройдет. Первый признак ошибки - слишком быстро пробежавший билд, а в пакете не будет ничего кроме директории /usr):&lt;br /&gt;
&lt;br /&gt;
    vi debian/rules&lt;br /&gt;
&lt;br /&gt;
 override_dh_auto_configure:&lt;br /&gt;
 ./configure --prefix=/usr&lt;br /&gt;
 --sbin-path=/usr/sbin/nginx&lt;br /&gt;
 --conf-path=/etc/nginx/nginx.conf&lt;br /&gt;
 --http-log-path=/var/log/nginx/access.log&lt;br /&gt;
 --error-log-path=/var/log/nginx/error.log&lt;br /&gt;
 --http-client-body-temp-path=/var/lib/nginx/body&lt;br /&gt;
 --http-proxy-temp-path=/var/lib/nginx/proxy&lt;br /&gt;
 --http-fastcgi-temp-path=/var/lib/nginx/fastcgi&lt;br /&gt;
 --http-uwsgi-temp-path=/var/run/nginx/uwsgi&lt;br /&gt;
 --http-scgi-temp-path=/var/run/nginx/scgi&lt;br /&gt;
 --pid-path=/var/run/nginx/nginx.pid&lt;br /&gt;
 --lock-path=/var/lock/nginx.lock&lt;br /&gt;
 --with-http_gzip_static_module&lt;br /&gt;
 --with-http_geoip_module &lt;br /&gt;
 --with-http_realip_module&lt;br /&gt;
 --with-http_stub_status_module&lt;br /&gt;
 --with-poll_module&lt;br /&gt;
 --with-http_dav_module&lt;br /&gt;
 --with-debug&lt;br /&gt;
 --with-http_ssl_module&lt;br /&gt;
 --with-http_flv_module&lt;br /&gt;
 --with-cc-opt=' -O2 -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector&lt;br /&gt;
 --param=ssp-buffer-size=4 -m64'&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Установим файлы приложения в сам пакет, а то он пустой получится:&lt;br /&gt;
&lt;br /&gt;
    dh_install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Так как у нас ванильный пакет, а не дебиановский, то у нас изначально нету никакого init-скрипта. Создадим его, перетерев старый (пробел только перед шибэнгом не забудьте стереть):&lt;br /&gt;
&lt;br /&gt;
    tee &amp;gt; debian/init.d.ex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    #! /bin/sh&lt;br /&gt;
 &lt;br /&gt;
    ### BEGIN INIT INFO&lt;br /&gt;
    # Provides:          nginx&lt;br /&gt;
    # Required-Start:    $all&lt;br /&gt;
    # Required-Stop:     $all&lt;br /&gt;
    # Default-Start:     2 3 4 5&lt;br /&gt;
    # Default-Stop:      0 1 6&lt;br /&gt;
    # Short-Description: starts the nginx web server&lt;br /&gt;
    # Description:       starts nginx using start-stop-daemon&lt;br /&gt;
    ### END INIT INFO&lt;br /&gt;
 &lt;br /&gt;
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
    DAEMON=/usr/sbin/nginx&lt;br /&gt;
    NAME=nginx&lt;br /&gt;
    DESC=nginx&lt;br /&gt;
 &lt;br /&gt;
    test -x $DAEMON || exit 0&lt;br /&gt;
 &lt;br /&gt;
    # Include nginx defaults if available&lt;br /&gt;
    if [ -f /etc/default/nginx ] ; then&lt;br /&gt;
            . /etc/default/nginx&lt;br /&gt;
    fi&lt;br /&gt;
 &lt;br /&gt;
    set -e&lt;br /&gt;
 &lt;br /&gt;
    case &amp;quot;$1&amp;quot; in&lt;br /&gt;
      start)&lt;br /&gt;
            echo -n &amp;quot;Starting $DESC: &amp;quot;&lt;br /&gt;
            start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \&lt;br /&gt;
                    --exec $DAEMON -- $DAEMON_OPTS || true&lt;br /&gt;
            echo &amp;quot;$NAME.&amp;quot;&lt;br /&gt;
            ;;&lt;br /&gt;
      stop)&lt;br /&gt;
            echo -n &amp;quot;Stopping $DESC: &amp;quot;&lt;br /&gt;
            start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \&lt;br /&gt;
                    --exec $DAEMON || true&lt;br /&gt;
            echo &amp;quot;$NAME.&amp;quot;&lt;br /&gt;
            ;;&lt;br /&gt;
      restart|force-reload)&lt;br /&gt;
            echo -n &amp;quot;Restarting $DESC: &amp;quot;&lt;br /&gt;
            start-stop-daemon --stop --quiet --pidfile \&lt;br /&gt;
                    /var/run/$NAME.pid --exec $DAEMON || true&lt;br /&gt;
            sleep 1&lt;br /&gt;
            start-stop-daemon --start --quiet --pidfile \&lt;br /&gt;
                    /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true&lt;br /&gt;
            echo &amp;quot;$NAME.&amp;quot;&lt;br /&gt;
            ;;&lt;br /&gt;
      reload)&lt;br /&gt;
          echo -n &amp;quot;Reloading $DESC configuration: &amp;quot;&lt;br /&gt;
          start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \&lt;br /&gt;
              --exec $DAEMON || true&lt;br /&gt;
          echo &amp;quot;$NAME.&amp;quot;&lt;br /&gt;
          ;;&lt;br /&gt;
      *)&lt;br /&gt;
            N=/etc/init.d/$NAME&lt;br /&gt;
            echo &amp;quot;Usage: $N {start|stop|restart|reload|force-reload}&amp;quot; &amp;gt;&amp;amp;2&lt;br /&gt;
            exit 1&lt;br /&gt;
            ;;&lt;br /&gt;
    esac&lt;br /&gt;
 &lt;br /&gt;
    exit 0&lt;br /&gt;
&lt;br /&gt;
И установим новый init-скрипт:&lt;br /&gt;
&lt;br /&gt;
    dh_installinit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
А еще нам нужна инструкция для logrotate как часто ротировать логи Nginx. Создадим файл конфига:&lt;br /&gt;
&lt;br /&gt;
    tee &amp;gt; conf/logrotate&lt;br /&gt;
&lt;br /&gt;
    /var/log/nginx/*.log {&lt;br /&gt;
            daily&lt;br /&gt;
            missingok&lt;br /&gt;
            rotate 16&lt;br /&gt;
            compress&lt;br /&gt;
            delaycompress&lt;br /&gt;
            notifempty&lt;br /&gt;
            create 640 root adm&lt;br /&gt;
            sharedscripts&lt;br /&gt;
            postrotate&lt;br /&gt;
                    [ ! -f /var/run/nginx/nginx.pid ] || kill -USR1 `cat /var/run/nginx/nginx.pid`&lt;br /&gt;
            endscript&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
И добавим его в список установленных файлов между 136-й и 137-й строками (перед END):&lt;br /&gt;
&lt;br /&gt;
    vi +136 auto/install&lt;br /&gt;
&lt;br /&gt;
            mkdir '\$(DESTDIR)$NGX_CONF_PREFIX'/logrotate.d&lt;br /&gt;
            cp conf/logrotate '\$(DESTDIR)$NGX_CONF_PREFIX'/logrotate.d/nginx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Вот теперь у нас нормально соберется:&lt;br /&gt;
&lt;br /&gt;
    debuild -uc -us&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Отходим назад и смотрим:&lt;br /&gt;
&lt;br /&gt;
    ls ../*deb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Можно теперь поставить:&lt;br /&gt;
&lt;br /&gt;
    dpkg -i ../nginx_1.0.8-nsq1-1_amd64.deb&lt;br /&gt;
&lt;br /&gt;
*Статья тут:[http://nodesquad.blogspot.com/2011/10/nginx-debian.html]http://nodesquad.blogspot.com/2011/10/nginx-debian.html&lt;/div&gt;</summary>
		<author><name>imported&gt;Vix</name></author>
	</entry>
</feed>