<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.rtzra.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>RTzRa&#039;s hive - software:nginx</title>
        <description>Все работает</description>
        <link>https://wiki.rtzra.ru/</link>
        <lastBuildDate>Sun, 19 Jul 2026 21:00:42 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wiki.rtzra.ru/_media/wiki/logo.png</url>
            <title>RTzRa&#039;s hive</title>
            <link>https://wiki.rtzra.ru/</link>
        </image>
        <item>
            <title>Nginx и блокировка пользователей</title>
            <link>https://wiki.rtzra.ru/software/nginx/block-users</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;nginx_i_blokirovka_polzovatelej&quot;&gt;Nginx и блокировка пользователей&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Иногда возникает необходимость быстро заблокировать каких-то пользователей средствами веб-сервера по некоторому признаку: User Agent, IP-адрес и т.д.
&lt;/p&gt;

&lt;p&gt;
Поможет вот такая штука.
&lt;/p&gt;

&lt;p&gt;
Создаем файл /etc/nginx/block.conf
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# Block unwanted users

# Blocking by User Agent (блокировка по юзер-агенту)
# Хорошо подходит для блокировки роботов
if ($http_user_agent ~ (ZmEu|libwww-perl|wget) ) {
    return 403;
    }

# Blocking by IP address (блокировка по ИП-адресу)
deny 88.88.88.88;

# Blocking by IP subnet (блокировка подсети)
deny 192.168.10.0/24;

# Blocking by Referer (блокировка по рефереру, т.е. адресу откуда пользователь перешел на мой сайт)
if ($http_referer ~* (viagra|cialis|levitra) ) {
	return 403;
	}

# Blocking by GeoIP (блокировка по географическому признаку)
geoip_country /etc/nginx/GeoIP.dat;
if ($geoip_country_code ~ (BR|CN|KR|RU) ) {
	return 403;
	}&lt;/pre&gt;

&lt;p&gt;
и подключаем его в нужной секции server { при помощи команды
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;include /etc/nginx/block.conf&lt;/pre&gt;

&lt;p&gt;
Внимание: если есть желание использовать GeoIP - удостоверьтесь что Nginx собран с этим модулем!
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/nginx?do=showtag&amp;amp;tag=nginx&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:nginx&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; nginx&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/zaschita?do=showtag&amp;amp;tag=%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:zaschita&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; защита&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/user_agent?do=showtag&amp;amp;tag=user_agent&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:user_agent&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; user agent&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 09 May 2017 15:34:00 +0000</pubDate>
        </item>
        <item>
            <title>Конвертируем .htaccess для nginx</title>
            <link>https://wiki.rtzra.ru/software/nginx/convert-htaccess-2-nginx</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;konvertiruem_htaccess_dlja_nginx&quot;&gt;Конвертируем .htaccess для nginx&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://winginx.ru/htaccess&quot; class=&quot;urlextern&quot; title=&quot;http://winginx.ru/htaccess&quot; rel=&quot;ugc nofollow&quot;&gt;http://winginx.ru/htaccess&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.anilcetin.com/convert-apache-htaccess-to-nginx/&quot; class=&quot;urlextern&quot; title=&quot;http://www.anilcetin.com/convert-apache-htaccess-to-nginx/&quot; rel=&quot;ugc nofollow&quot;&gt;http://www.anilcetin.com/convert-apache-htaccess-to-nginx/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 09 May 2017 15:34:00 +0000</pubDate>
        </item>
        <item>
            <title>Установка nginx на Ubuntu Server из исходников</title>
            <link>https://wiki.rtzra.ru/software/nginx/installation</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;ustanovka_nginx_na_ubuntu_server_iz_isxodnikov&quot;&gt;Установка nginx на Ubuntu Server из исходников&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Дано: Ubuntu Server 10.04.1 LTS x64. Версия из пакета nginx-0.7.65-1ubuntu2, а в природе есть уже  и постарше (на момент написания заметки была nginx-1.0.3).
&lt;/p&gt;

&lt;p&gt;
Задача: установить nginx, переложить на него отдачу статического контента (картинок, документов и прочего).
&lt;/p&gt;

&lt;p&gt;
Так как в репозитории слишком уж старая версия, будем ставить руками. Поехали.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Примечание&lt;/strong&gt;: есть PPA здесь - &lt;a href=&quot;https://launchpad.net/~nginx/+archive/stable&quot; class=&quot;urlextern&quot; title=&quot;https://launchpad.net/~nginx/+archive/stable&quot; rel=&quot;ugc nofollow&quot;&gt;https://launchpad.net/~nginx/+archive/stable&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 nginx \u043d\u0430 Ubuntu Server \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ustanovka_nginx_na_ubuntu_server_iz_isxodnikov&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-751&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;ustanovka_originalnogo_paketa&quot;&gt;Установка оригинального пакета&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для начала надо установить оригинальный пакет - в нем есть ценный сценарий запуска и конфигурационные файлы (они помогут сократить время настройки). Затем его удаляем чтобы не мешался.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# sudo apt-get install nginx&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# sudo apt-get remove nginx&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ustanovka_originalnogo_paketa&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;752-1240&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;sborka_iz_isxodnikov&quot;&gt;Сборка из исходников&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Проверяем зависимости, какие же пакеты нужны для сборки.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# sudo aptitude show nginx | grep Depends&lt;/span&gt;
Depends: libc6 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;= &lt;span class=&quot;nu0&quot;&gt;2.4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, libpcre3 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;= &lt;span class=&quot;nu0&quot;&gt;7.7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, libssl0.9.8 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;= 0.9.8k-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, zlib1g&lt;/pre&gt;

&lt;p&gt;
Ставим нужные пакеты:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co4&quot;&gt;# &lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; libc6-dev libpcre3-dev libssl-dev zlib1g-dev&lt;/pre&gt;

&lt;p&gt;
Качаем nginx, разворачиваем, заходим в папку:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# mkdir /usr/src/nginx&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# cd /usr/src/nginx&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# wget http://sysoev.ru/nginx/nginx-1.0.3.tar.gz&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# tar xvf nginx-1.0.3.tar.gz&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# cd nginx-1.0.3/&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Задаем некоторые опции для сборки. Пояснение: я люблю когда все лежит по местам и вообще «красота». Бинарник поместим в /usr/local/sbin чтобы он не пересекался с бинарником из пакета, вдруг таковой будет случайно установлен. Ну и –with-http_ssl_module пригодится. Работать nginx будет у нас под стандартным пользователем www-data:www-data
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# ./configure --sbin-path=/usr/local/sbin \&lt;/span&gt;
              &lt;span class=&quot;re5&quot;&gt;--conf-path&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx.conf \
              &lt;span class=&quot;re5&quot;&gt;--error-log-path&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;log&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx-error.log \
              &lt;span class=&quot;re5&quot;&gt;--http-log-path&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;log&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx-http.log \
              &lt;span class=&quot;re5&quot;&gt;--pid-path&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx.pid \
              --with-http_ssl_module \
              --with-http_stub_status_module \
              --with-http_gzip_static_module \
              &lt;span class=&quot;re5&quot;&gt;--user&lt;/span&gt;=www-data \
              &lt;span class=&quot;re5&quot;&gt;--group&lt;/span&gt;=www-data&lt;/pre&gt;

&lt;p&gt;
Просмотрим отчет, убедимся что все правильно:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + md5: using OpenSSL library
  + sha1 library is not used
  + using system zlib library
&amp;nbsp;
  nginx path prefix: &lt;span class=&quot;st0&quot;&gt;&amp;quot;/usr/local/nginx&amp;quot;&lt;/span&gt;
  nginx binary file: &lt;span class=&quot;st0&quot;&gt;&amp;quot;/usr/local/sbin&amp;quot;&lt;/span&gt;
  nginx configuration prefix: &lt;span class=&quot;st0&quot;&gt;&amp;quot;/etc/nginx&amp;quot;&lt;/span&gt;
  nginx configuration file: &lt;span class=&quot;st0&quot;&gt;&amp;quot;/etc/nginx/nginx.conf&amp;quot;&lt;/span&gt;
  nginx pid file: &lt;span class=&quot;st0&quot;&gt;&amp;quot;/var/run/nginx.pid&amp;quot;&lt;/span&gt;
  nginx error log file: &lt;span class=&quot;st0&quot;&gt;&amp;quot;/var/log/nginx/nginx-error.log&amp;quot;&lt;/span&gt;
  nginx http access log file: &lt;span class=&quot;st0&quot;&gt;&amp;quot;/var/log/nginx/nginx-http.log&amp;quot;&lt;/span&gt;
  nginx http client request body temporary files: &lt;span class=&quot;st0&quot;&gt;&amp;quot;client_body_temp&amp;quot;&lt;/span&gt;
  nginx http proxy temporary files: &lt;span class=&quot;st0&quot;&gt;&amp;quot;proxy_temp&amp;quot;&lt;/span&gt;
  nginx http fastcgi temporary files: &lt;span class=&quot;st0&quot;&gt;&amp;quot;fastcgi_temp&amp;quot;&lt;/span&gt;
  nginx http uwsgi temporary files: &lt;span class=&quot;st0&quot;&gt;&amp;quot;uwsgi_temp&amp;quot;&lt;/span&gt;
  nginx http scgi temporary files: &lt;span class=&quot;st0&quot;&gt;&amp;quot;scgi_temp&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Собираем
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co4&quot;&gt;# &lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Устанавливаем
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co4&quot;&gt;# &lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0431\u043e\u0440\u043a\u0430 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sborka_iz_isxodnikov&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1241-3947&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;naxsi&quot;&gt;NAXSI&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
NAXSI = &lt;strong&gt;N&lt;/strong&gt;GINX &lt;strong&gt;A&lt;/strong&gt;NTI &lt;strong&gt;X&lt;/strong&gt;SS &amp;amp; &lt;strong&gt;S&lt;/strong&gt;QL &lt;strong&gt;I&lt;/strong&gt;NJECTION&lt;br /&gt;
Проще говоря, это файрвол веб-приложений (WAF) для NGINX, помогающий в защите от XSS, SQL-инъекций, CSRF, Local &amp;amp; Remote file inclusions.&lt;br /&gt;
Отличительными особенностями его являются быстрота работы и простота настройки. Это делает его хорошей альтернативой например mod_security и апачу.
&lt;/p&gt;

&lt;p&gt;
Статья по теме: &lt;a href=&quot;http://habrahabr.ru/post/145241/&quot; class=&quot;urlextern&quot; title=&quot;http://habrahabr.ru/post/145241/&quot; rel=&quot;ugc nofollow&quot;&gt;http://habrahabr.ru/post/145241/&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;NAXSI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;naxsi&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3948-4553&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;ustanovka&quot;&gt;Установка&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Из репозиториев:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# sudo apt-get install nginx-naxsi &lt;/pre&gt;

&lt;p&gt;
Из исходников:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# wget http://nginx.org/download/nginx-x.x.xx.tar.gz
# wget http://naxsi.googlecode.com/files/naxsi-x.xx.tar.gz
# tar xvzf nginx-x.x.xx.tar.gz
# tar xvzf naxsi-x.xx.tar.gz
# cd nginx-x.x.xx/
# ./configure --add-module=../naxsi-x.xx/naxsi_src/  [тут ваши опции для nginx]
# sudo make
# sudo make install&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ustanovka&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4554-5026&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;nastrojka&quot;&gt;Настройка&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Набор правил: &lt;a href=&quot;http://code.google.com/p/naxsi/source/browse/trunk/naxsi_config/naxsi_core.rules&quot; class=&quot;urlextern&quot; title=&quot;http://code.google.com/p/naxsi/source/browse/trunk/naxsi_config/naxsi_core.rules&quot; rel=&quot;ugc nofollow&quot;&gt;http://code.google.com/p/naxsi/source/browse/trunk/naxsi_config/naxsi_core.rules&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Раскомментируем в конфигурации nginx включение базовых запретительных правил
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;include /etc/nginx/naxsi_core.rules;&lt;/pre&gt;

&lt;p&gt;
Теперь добавим в конфигурацию виртуального хоста желаемые настройки (рекомендую вынести их в отдельный файл и подключать через include):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;LearningMode;
SecRulesEnabled;
DeniedUrl &amp;quot;/RequestDenied&amp;quot;;

#include &amp;quot;/etc/nginx/mynaxsi.rules&amp;quot;;

## check rules
CheckRule &amp;quot;$SQL &amp;gt;= 8&amp;quot; BLOCK;
CheckRule &amp;quot;$RFI &amp;gt;= 8&amp;quot; BLOCK;
CheckRule &amp;quot;$TRAVERSAL &amp;gt;= 4&amp;quot; BLOCK;
CheckRule &amp;quot;$EVADE &amp;gt;= 4&amp;quot; BLOCK;
CheckRule &amp;quot;$XSS &amp;gt;= 8&amp;quot; BLOCK;&lt;/pre&gt;

&lt;p&gt;
Разберем подробней, что значат эти команды:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LearningMode — включен режим обучения. Запросы не блокируются, формируется вайт-лист.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SecRulesEnabled — NAXSI включен для данной локации. Если захотим выключить для другой локации (например, защищенной внутренней зоны), то делаем в ней SecRulesDisabled.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DeniedURL — &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt; редиректа для запрещенных запросов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CheckRule — проверка “штрафных очков” запроса по категориям.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; /etc/nginx/mynaxsi.rules — сгенерированные правила (пока не сгенерили — закомментированные).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;nastrojka&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;5027-6751&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;podgotavlivaemsja_k_zapusku&quot;&gt;Подготавливаемся к запуску&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Все, сборка закончена, теперь надо подготовиться к запуску
&lt;/p&gt;

&lt;p&gt;
Создаем папку для логов:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co4&quot;&gt;# &lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;log&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;/pre&gt;

&lt;p&gt;
Правим скрипт запуска: в файле /etc/init.d/nginx меняем строку DAEMON на
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;DAEMON&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sbin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nginx&lt;/pre&gt;

&lt;p&gt;
Все, можно запускаться и пробовать:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co4&quot;&gt;# &lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; service nginx start&lt;/pre&gt;

&lt;p&gt;
Если конфигурационный файл лежит на месте, все должно заработать.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c\u0441\u044f \u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0443&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;podgotavlivaemsja_k_zapusku&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;6752-7415&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;konfiguriruem&quot;&gt;Конфигурируем&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Преамбула&lt;/strong&gt;: у меня живет несколько виртуальных хостов в Апаче, это необходимо учесть при настройке. Конфигурационные файлы живут в /etc/apache2/sites-available - так проще их настраивать.
&lt;/p&gt;

&lt;p&gt;
Для того, чтобы в логах Апача писались реальные IP-адреса, а не 127.0.0.1 (на котором он будет висеть), требуется установить модуль rpaf:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# sudo apt-get install libapache2-mod-rpaf&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# sudo a2enmod rpaf&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Проверяем что у нас в /etc/apache2/mods_available/rpaf.conf
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# cat rpaf.conf &lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;IfModule mod_rpaf.c&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
RPAFenable On
RPAFsethostname On
&lt;span class=&quot;co0&quot;&gt;#RPAFproxy_ips 127.0.0.1&lt;/span&gt;
RPAFproxy_ips 127.0.0.1 realip &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;realip1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;IfModule&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
&lt;strong&gt;Объяснялки&lt;/strong&gt;: Для того, чтобы прикрутить несколько виртуалхостов апача делается следующее:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Каждый виртуалхост апача должен висеть на адресе 127.0.0.1:номер_порта, именно туда и подключается nginx, получив запрос&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В /etc/apache2/ports.conf заводится требуемое кол-во портов (по 1 на виртуалхост)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В конфиге каждого виртуалхоста при помощи директивы VirtualHost выставляется требуемый адрес и порт&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; В конфиге nginx прописывается каждый домен&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;Примеры&lt;/strong&gt; - внимание, это очень  простые болванки, а не рабочие файлы!
&lt;/p&gt;

&lt;p&gt;
/etc/apache2/ports.conf :
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#Listen 80&lt;/span&gt;
Listen 127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;8081&lt;/span&gt;
Listen 127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;8082&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
/etc/apache2/sites-available/site1 :
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;VirtualHost 127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;8081&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Это нужно если стоит модуль mpm_itk_module - для запуска каждого виртуалхоста&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# под своим пользователем&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;IfModule mpm_itk_module&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
	AssignUserId site1com site1com
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;IfModule&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
	ServerName site1.com
	ServerAlias www.site1.com
	ServerAdmin admin&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;site1.com
&amp;nbsp;
	DocumentRoot &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;site1.com
	&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;Directory &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;site1.com&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
		Options FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
	&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;Directory&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
	ErrorLog &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;log&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apache2&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;site1.com-error.log
	CustomLog &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;log&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apache2&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;site1.com-access.log combined
&amp;nbsp;
	&lt;span class=&quot;co0&quot;&gt;# Possible values include: debug, info, notice, warn, error, crit,&lt;/span&gt;
	&lt;span class=&quot;co0&quot;&gt;# alert, emerg.&lt;/span&gt;
	LogLevel warn
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;VirtualHost&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
/etc/apache2/sites-available/site2 :
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;VirtualHost 127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;8082&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Это нужно если стоит модуль mpm_itk_module - для запуска каждого виртуалхоста&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# под своим пользователем&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;IfModule mpm_itk_module&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
	AssignUserId site2com site2com
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;IfModule&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
	ServerName site2.com
	ServerAlias www.site2.com
	ServerAdmin admin&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;site2.com
&amp;nbsp;
	DocumentRoot &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;site2.com
	&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;Directory &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;site2.com&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
		Options FollowSymLinks MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
	&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;Directory&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;nbsp;
	ErrorLog &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;log&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apache2&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;site2.com-error.log
	CustomLog &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;log&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apache2&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;site2.com-access.log combined
&amp;nbsp;
	&lt;span class=&quot;co0&quot;&gt;# Possible values include: debug, info, notice, warn, error, crit,&lt;/span&gt;
	&lt;span class=&quot;co0&quot;&gt;# alert, emerg.&lt;/span&gt;
	LogLevel warn
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;/&lt;/span&gt;VirtualHost&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
/etc/nginx/nginx.conf :
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;user  www-data;
worker_processes &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#error_log  logs/error.log;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#error_log  logs/error.log  notice;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#error_log  logs/error.log  info;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#pid        logs/nginx.pid;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
events &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    worker_connections  &lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
http &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    include       mime.types;
    default_type  application&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;octet-stream;
&amp;nbsp;
    &lt;span class=&quot;co0&quot;&gt;#log_format  main  &#039;$remote_addr - $remote_user [$time_local] &amp;quot;$request&amp;quot; &#039;&lt;/span&gt;
    &lt;span class=&quot;co0&quot;&gt;#                  &#039;$status $body_bytes_sent &amp;quot;$http_referer&amp;quot; &#039;&lt;/span&gt;
    &lt;span class=&quot;co0&quot;&gt;#                  &#039;&amp;quot;$http_user_agent&amp;quot; &amp;quot;$http_x_forwarded_for&amp;quot;&#039;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co0&quot;&gt;#access_log  logs/access.log  main;&lt;/span&gt;
&amp;nbsp;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
&amp;nbsp;
    &lt;span class=&quot;co0&quot;&gt;#keepalive_timeout  0;&lt;/span&gt;
    keepalive_timeout  &lt;span class=&quot;nu0&quot;&gt;65&lt;/span&gt;;
&amp;nbsp;
    &lt;span class=&quot;kw2&quot;&gt;gzip&lt;/span&gt; on;
    gzip_min_length &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;;
    gzip_buffers &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt; 8k;
    gzip_proxied expired no-cache no-store private auth;
    gzip_types text&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;plain application&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;xml application&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x-pointplus application&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x-javascript text&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;css;
    gzip_comp_level &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;;
    gzip_disable &lt;span class=&quot;st0&quot;&gt;&amp;quot;MSIE [1-6]\.(?!.*SV1)&amp;quot;&lt;/span&gt;; &lt;span class=&quot;co0&quot;&gt;# do not compress for IE1-6&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# site1.com&lt;/span&gt;
    server &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        listen      &lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt;;
        server_name www.site1.com site1.com;
&amp;nbsp;
        &lt;span class=&quot;co0&quot;&gt;#charset koi8-r;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co0&quot;&gt;#access_log  logs/host.access.log  main;&lt;/span&gt;
&amp;nbsp;
        location &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            proxy_pass http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;8081&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;;
            proxy_redirect off;
            proxy_set_header Host &lt;span class=&quot;re1&quot;&gt;$host&lt;/span&gt;;
            proxy_set_header X-Real-IP &lt;span class=&quot;re1&quot;&gt;$remote_addr&lt;/span&gt;;
            proxy_set_header X-Forwarded-For &lt;span class=&quot;re1&quot;&gt;$proxy_add_x_forwarded_for&lt;/span&gt;;
            proxy_headers_hash_max_size &lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;;
            proxy_headers_hash_bucket_size &lt;span class=&quot;nu0&quot;&gt;256&lt;/span&gt;;
            client_max_body_size 40m;
            client_body_buffer_size 256k;
&amp;nbsp;
            proxy_connect_timeout &lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt;;
            proxy_send_timeout &lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt;;
            proxy_read_timeout &lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt;;
&amp;nbsp;
            proxy_buffer_size 64k;
            proxy_buffers &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; 64k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;
            proxy_set_header X-Forwarded-For &lt;span class=&quot;re1&quot;&gt;$proxy_add_x_forwarded_for&lt;/span&gt;;
            &lt;span class=&quot;co0&quot;&gt;# Отдача картинок&lt;/span&gt;
            &lt;span class=&quot;co0&quot;&gt;# 1. Если картинка лежит в папке product, забрать ее через Apache - там скриптом наложится watermark&lt;/span&gt;
            location ~&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;product&amp;quot;&lt;/span&gt;
                &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;site1.com;
                    proxy_pass  http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;8081&lt;/span&gt;;
                    proxy_redirect      off;
                    access_log off;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;co0&quot;&gt;# 2. Все остальные картинки отдаем напрямую&lt;/span&gt;
            location ~&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; \.&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;jpg&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;jpeg&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;gif&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;png&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;ico&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;zip&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;tar&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;tgz&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;gz&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;bz2&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;rar&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;doc&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;xls&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;exe&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;pdf&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;ppt&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;txt&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;$
                &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;site1.com;
                    access_log off;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# site2.com&lt;/span&gt;
    server &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        listen      &lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt;;
        server_name www.site2.com site2.com;
&amp;nbsp;
        &lt;span class=&quot;co0&quot;&gt;#charset koi8-r;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co0&quot;&gt;#access_log  logs/host.access.log  main;&lt;/span&gt;
&amp;nbsp;
        location &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    	    proxy_pass http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;8082&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;;
    	    proxy_redirect off;
    	    proxy_set_header Host &lt;span class=&quot;re1&quot;&gt;$host&lt;/span&gt;;
    	    proxy_set_header X-Real-IP &lt;span class=&quot;re1&quot;&gt;$remote_addr&lt;/span&gt;;
    	    proxy_set_header X-Forwarded-For &lt;span class=&quot;re1&quot;&gt;$proxy_add_x_forwarded_for&lt;/span&gt;;
    	    proxy_headers_hash_max_size &lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;;
    	    proxy_headers_hash_bucket_size &lt;span class=&quot;nu0&quot;&gt;256&lt;/span&gt;;
    	    client_max_body_size 40m;
    	    client_body_buffer_size 256k;
&amp;nbsp;
    	    proxy_connect_timeout &lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt;;
    	    proxy_send_timeout &lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt;;
    	    proxy_read_timeout &lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt;;
&amp;nbsp;
    	    proxy_buffer_size 64k;
    	    proxy_buffers &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; 64k;
    	    proxy_busy_buffers_size 64k;
    	    proxy_temp_file_write_size 64k;
    	    proxy_set_header X-Forwarded-For &lt;span class=&quot;re1&quot;&gt;$proxy_add_x_forwarded_for&lt;/span&gt;;
            location ~&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; \.&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;jpg&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;jpeg&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;gif&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;png&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;ico&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;zip&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;tar&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;tgz&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;gz&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;bz2&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;rar&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;doc&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;xls&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;exe&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;pdf&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;ppt&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;txt&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;$
                &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                    root &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;site1.com;
                    access_log off;
                &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;        &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;konfiguriruem&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:15,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;7416-14882&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;ssylki&quot;&gt;Ссылки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Домашняя страничка nginx - &lt;a href=&quot;http://sysoev.ru/&quot; class=&quot;urlextern&quot; title=&quot;http://sysoev.ru/&quot; rel=&quot;ugc nofollow&quot;&gt;http://sysoev.ru/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0441\u044b\u043b\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ssylki&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:21,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;14883-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 09 May 2017 15:34:00 +0000</pubDate>
        </item>
        <item>
            <title>Замена сертификата Ngnix</title>
            <link>https://wiki.rtzra.ru/software/nginx/nginx-certificates</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;zamena_sertifikata_ngnix&quot;&gt;Замена сертификата Ngnix&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Исходники:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;GlobalSign RSA OV SSL CA 2018.cer
GlobalSign.cer
param.txt
private.MYSERVICE.ru.key
MYSERVICE.ru.cer
MYSERVICE.ru.csr&lt;/pre&gt;

&lt;p&gt;
Объедините три сертификата (сам SSL-сертификат, корневой и промежуточный сертификаты) в один файл. Для этого создайте на ПК новый текстовый документ с именем MYCERT.crt Поочередно скопируйте и вставьте в созданный документ каждый сертификат. После вставки всех сертификатов файл должен иметь вид:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt; -----BEGIN CERTIFICATE-----
#Ваш сертификат#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Промежуточный сертификат#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Корневой сертификат#
-----END CERTIFICATE-----&lt;/pre&gt;

&lt;p&gt;
Обратите внимание: один сертификат идёт следом за другим, без пустых строк.
&lt;/p&gt;

&lt;p&gt;
Создайте файл your_domain.key и скопируйте в него содержание приватного ключа сертификата.
&lt;/p&gt;

&lt;p&gt;
MYCERT.priv.key
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  ssl_certificate /etc/ssl/MYCERT.crt;
  ssl_certificate_key /etc/ssl/MYCERT-priv.key;&lt;/pre&gt;

&lt;p&gt;
private.MYSERVICE.ru.key → MYCERT.priv.key
&lt;/p&gt;

&lt;p&gt;
Сертификаты приходят в дере, а мне нужны текстовые, конвертируем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;openssl x509 -inform DER -in GlobalSign.cer -out GlobalSign.crt
openssl x509 -inform DER -in GlobalSign\ RSA\ OV\ SSL\ CA\ 2018.cer -out GlobalSign\ RSA\ OV\ SSL\ CA\ 2018.crt
openssl x509 -inform DER -in MYSERVICE.ru.cer -out MYSERVICE.ru.crt&lt;/pre&gt;

&lt;p&gt;
отконвертили
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ls -l *.crt

GlobalSign.crt
GlobalSign RSA OV SSL CA 2018.crt
MYSERVICE.ru.crt&lt;/pre&gt;

&lt;p&gt;
собираем
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cat MYSERVICE.ru.crt &amp;gt; fullchain.crt
cat GlobalSign RSA OV SSL CA 2018.crt &amp;gt;&amp;gt; fullchain.crt
cat GlobalSign.crt &amp;gt;&amp;gt; fullchain.crt&lt;/pre&gt;

&lt;p&gt;
Проверяем и запускаем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;nginx -t
systemctl stop nginx.service
systemctl start nginx.service
systemctl status nginx.service&lt;/pre&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/nginx?do=showtag&amp;amp;tag=nginx&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:nginx&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; nginx&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/certificates?do=showtag&amp;amp;tag=certificates&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:certificates&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; certificates&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 31 Mar 2022 08:35:46 +0000</pubDate>
        </item>
        <item>
            <title>Nginx: Сервис по генерации конфигов</title>
            <link>https://wiki.rtzra.ru/software/nginx/nginx-config</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;nginxservis_po_generacii_konfigov&quot;&gt;Nginx: Сервис по генерации конфигов&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.digitalocean.com/community/tools/nginx&quot; class=&quot;urlextern&quot; title=&quot;https://www.digitalocean.com/community/tools/nginx&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.digitalocean.com/community/tools/nginx&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/nginx?do=showtag&amp;amp;tag=nginx&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:nginx&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; nginx&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/config?do=showtag&amp;amp;tag=config&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:config&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; config&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/generate?do=showtag&amp;amp;tag=generate&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:generate&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; generate&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/konfig?do=showtag&amp;amp;tag=%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:konfig&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; конфиг&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/generacija?do=showtag&amp;amp;tag=%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:generacija&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; генерация&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 04 Aug 2021 01:46:04 +0000</pubDate>
        </item>
        <item>
            <title>NGINXConfigСамый - простой способ настроить ...</title>
            <link>https://wiki.rtzra.ru/software/nginx/nginx-do-config</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;nginxconfigsamyj_-_prostoj_sposob_nastroit_proizvoditelnyj_bezopasnyj_i_stabilnyj_nginx_server&quot;&gt;NGINXConfigСамый - простой способ настроить производительный, безопасный и стабильный NGINX сервер&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.digitalocean.com/community/tools/nginx?global.app.lang=ru&quot; class=&quot;urlextern&quot; title=&quot;https://www.digitalocean.com/community/tools/nginx?global.app.lang=ru&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.digitalocean.com/community/tools/nginx?global.app.lang=ru&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Визуальная конфигурилка Nginx для различных движков: от Wordpress до Node.js
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/nginx?do=showtag&amp;amp;tag=nginx&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:nginx&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; nginx&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/config?do=showtag&amp;amp;tag=config&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:config&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; config&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/visual_config?do=showtag&amp;amp;tag=visual_config&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:visual_config&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; visual config&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 31 Jul 2022 13:27:10 +0000</pubDate>
        </item>
        <item>
            <title>Nginx: Gixy</title>
            <link>https://wiki.rtzra.ru/software/nginx/nginx-gixy</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;nginxgixy&quot;&gt;Nginx: Gixy&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Офсайт: &lt;a href=&quot;https://github.com/yandex/gixy&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/yandex/gixy&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/yandex/gixy&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Назначение: проверка конфигурации nginx на уязвимости. Предупреждает о возможных некорректных настройках, может работать в виде докер-контейнера.
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/nginx?do=showtag&amp;amp;tag=nginx&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:nginx&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; nginx&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/gixy?do=showtag&amp;amp;tag=gixy&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:gixy&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; gixy&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/analiz?do=showtag&amp;amp;tag=%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:analiz&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; анализ&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/ujazvimostej?do=showtag&amp;amp;tag=%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B5%D0%B9&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:ujazvimostej&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; уязвимостей&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/security?do=showtag&amp;amp;tag=security&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:security&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; security&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/misconfiguration?do=showtag&amp;amp;tag=misconfiguration&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:misconfiguration&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; misconfiguration&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 13 Sep 2021 20:04:46 +0000</pubDate>
        </item>
        <item>
            <title>Nginx-playground: Тестируем настройки</title>
            <link>https://wiki.rtzra.ru/software/nginx/nginx-playground</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;nginx-playgroundtestiruem_nastrojki&quot;&gt;Nginx-playground: Тестируем настройки&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://nginx-playground.wizardzines.com&quot; class=&quot;urlextern&quot; title=&quot;https://nginx-playground.wizardzines.com&quot; rel=&quot;ugc nofollow&quot;&gt;https://nginx-playground.wizardzines.com&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
С его помощью можно быстро и удобно тестировать конфиги nginx. На одной стороне окна браузера конфиг nginx, на другой стороне запрос к веб серверу с этим конфигом и ниже ответ. Прикольная и полезная идея. Особенно удобно с редиректами разбираться в такой штуке. Иногда прям запотеть приходится, чтобы правильно разрулить все редиректы в один этап. То есть не допустить множественных редиректов, когда они накладываются один на другой: http, https, слеш или без слеша на конце, верхний регистр в нижний и т.д. 
&lt;/p&gt;

&lt;p&gt;
Если в логе будет ошибка, сразу же увидите её. Работает вся эта штука на Go. Бэкенд забирает ваш конфиг, сохраняет в файл, запускает nginx. Далее запускает curl с запросом и выводит ответ. Уровень небольшой курсовой работы, но при этом достаточно полезно вышло.
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/nginx?do=showtag&amp;amp;tag=nginx&quot; class=&quot;wikilink1&quot; title=&quot;tag:nginx&quot; rel=&quot;tag&quot;&gt;nginx&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/nginx-playground?do=showtag&amp;amp;tag=nginx-playground&quot; class=&quot;wikilink1&quot; title=&quot;tag:nginx-playground&quot; rel=&quot;tag&quot;&gt;nginx-playground&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/configuration?do=showtag&amp;amp;tag=configuration&quot; class=&quot;wikilink1&quot; title=&quot;tag:configuration&quot; rel=&quot;tag&quot;&gt;configuration&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/konfig?do=showtag&amp;amp;tag=%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3&quot; class=&quot;wikilink1&quot; title=&quot;tag:konfig&quot; rel=&quot;tag&quot;&gt;конфиг&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 02 Mar 2022 06:45:14 +0000</pubDate>
        </item>
        <item>
            <title>Puppet-module-nginx - расширяем функциональность nginx</title>
            <link>https://wiki.rtzra.ru/software/nginx/puppet-module-nginx</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;puppet-module-nginx_-_rasshirjaem_funkcionalnost_nginx&quot;&gt;Puppet-module-nginx - расширяем функциональность nginx&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Данный модуль дает возможность прямой и независимо настраиваемой работы nginx с php/ruby (индивидуальные настройки для каждого сайта)
&lt;/p&gt;

&lt;p&gt;
Что умеет:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; независимые настройки ruby и php для каждого сайта&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; простое проксирование&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; редирект для алиасов (например &lt;a href=&quot;http://www.site.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.site.com&quot; rel=&quot;ugc nofollow&quot;&gt;www.site.com&lt;/a&gt; в site.com)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; отдельные логи для каждого сайта&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/garex/puppet-module-nginx&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/garex/puppet-module-nginx&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/garex/puppet-module-nginx&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/nginx?do=showtag&amp;amp;tag=nginx&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:nginx&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; nginx&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/puppet-module-nginx?do=showtag&amp;amp;tag=puppet-module-nginx&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:puppet-module-nginx&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; puppet-module-nginx&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 09 May 2017 15:34:00 +0000</pubDate>
        </item>
    </channel>
</rss>
