<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Siava.Su &#187; Web</title>
	<atom:link href="http://siava.su/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://siava.su</link>
	<description>черновик сисадмина</description>
	<lastBuildDate>Thu, 24 Nov 2011 09:36:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>nginx + perl / cgi</title>
		<link>http://siava.su/2011/05/30/nginx-perl-cgi/</link>
		<comments>http://siava.su/2011/05/30/nginx-perl-cgi/#comments</comments>
		<pubDate>Mon, 30 May 2011 10:07:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[mini-httpd]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://siava.su/?p=245</guid>
		<description><![CDATA[На днях столкнулся с задачей выполнения perl-скриптов на веб-сервере под управлением nginx. Решение нашлось довольно быстро, делюсь с вами :) Имеем: Debian Linux nginx в режиме FastCGI + php Требуется: добавить поддержку perl / cgi в директории cgi-bin Ну не Apache же ставить ради такой ерунды :) Для этого подойдёт быстрый и лёгкий веб-сервер mini-httpd. [...]]]></description>
			<content:encoded><![CDATA[<p>На днях столкнулся с задачей выполнения perl-скриптов на веб-сервере под управлением nginx. Решение нашлось довольно быстро, делюсь с вами :)</p>
<p><span id="more-245"></span><strong>Имеем:</strong></p>
<ul>
<li>Debian Linux</li>
<li>nginx в режиме FastCGI + php</li>
</ul>
<p><strong>Требуется:</strong></p>
<ul>
<li>добавить поддержку perl / cgi в директории cgi-bin</li>
</ul>
<p>Ну не Apache же ставить ради такой ерунды :) Для этого подойдёт быстрый и лёгкий веб-сервер <a rel="nofollow" target="_blank" href="http://www.acme.com/software/mini_httpd/" >mini-httpd</a>.</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="c"><pre class="de1">apt<span class="sy0">-</span>get install mini<span class="sy0">-</span>httpd</pre></div></div></div></div></div></div></div>


<p>Редактируем файл конфигурации /etc/mini-httpd.conf. Я изменил там лишь 3 строки:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="c"><pre class="de1">port<span class="sy0">=</span><span class="nu0">9001</span>
user<span class="sy0">=</span>www<span class="sy0">-</span>data
data_dir<span class="sy0">=/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>site.<span class="me1">ru</span></pre></div></div></div></div></div></div></div>


<p>Затем, в /etc/default/mini-httpd разрешаем автоматическую загрузку этого веб-сервера:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="c"><pre class="de1">START<span class="sy0">=</span><span class="nu0">1</span></pre></div></div></div></div></div></div></div>


<p>И запускаем его:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="c"><pre class="de1"><span class="sy0">/</span>etc<span class="sy0">/</span>init.<span class="me1">d</span><span class="sy0">/</span>mini<span class="sy0">-</span>httpd start</pre></div></div></div></div></div></div></div>


<p>Теперь настроим nginx, чтобы при обращении к perl / cgi &#8211; скриптам он проксировал запросы на mini-httpd. В файле конфигурации nginx в секции server добавляем следующий location:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="c"><pre class="de1">server <span class="br0">&#123;</span>
&nbsp;
....
&nbsp;
	<span class="me1">location</span> ~ \.<span class="me1">pl</span>$ <span class="br0">&#123;</span>
		root   <span class="sy0">/</span>var<span class="sy0">/</span>www<span class="sy0">/</span>site.<span class="me1">ru</span><span class="sy0">/</span>cgi<span class="sy0">-</span>bin<span class="sy0">;</span>
		gzip off<span class="sy0">;</span>
		proxy_pass    http<span class="sy0">:</span><span class="co1">//127.0.0.1:9001;</span>
	<span class="br0">&#125;</span>
&nbsp;
....
&nbsp;
<span class="br0">&#125;</span></pre></div></div></div></div></div></div></div>


<p>Перезапускаем nginx и готово! :)</p>
<p>P.S.<br />
Чтобы работала авторизация и куки, в location также можно добавить вот эти параметры:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="c"><pre class="de1">set                     $referer        $http_referer<span class="sy0">;</span>
proxy_set_header        Referer         $referer<span class="sy0">;</span>
proxy_set_header        X<span class="sy0">-</span>Real<span class="sy0">-</span>IP       $remote_addr<span class="sy0">;</span>
proxy_set_header        Host            localhost<span class="sy0">:</span><span class="nu0">9001</span><span class="sy0">;</span>
proxy_set_header        REQUEST_METHOD  $request_method<span class="sy0">;</span>
proxy_set_header        REMOTE_USER     $remote_user<span class="sy0">;</span>
proxy_set_header        REMOTE_ADDR     $remote_addr<span class="sy0">;</span>
proxy_set_header        SERVER_NAME     localhost<span class="sy0">;</span>
proxy_set_header        SERVER_PORT     <span class="nu0">9001</span><span class="sy0">;</span>
proxy_set_header        HTTP_COOKIE     $http_cookie<span class="sy0">;</span></pre></div></div></div></div></div></div></div>


<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://siava.su/2011/05/30/nginx-perl-cgi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Копируем сайт на диск</title>
		<link>http://siava.su/2010/10/25/site-offline-copy-to-disk/</link>
		<comments>http://siava.su/2010/10/25/site-offline-copy-to-disk/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 13:06:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[CD]]></category>
		<category><![CDATA[copy]]></category>
		<category><![CDATA[DVD]]></category>
		<category><![CDATA[offline]]></category>
		<category><![CDATA[web site]]></category>
		<category><![CDATA[копировать сайт]]></category>
		<category><![CDATA[копия]]></category>
		<category><![CDATA[оффлайн]]></category>

		<guid isPermaLink="false">http://siava.su/?p=128</guid>
		<description><![CDATA[Копия сайта может пригодится в разных случаях, например для записи на CD/DVD в виде рекламной продукции, либо в тех случаях, когда под рукой нет Интернета, либо для конвертации динамического сайта в статический. Как же удобней всего сделать такую копию? Есть как минимум 2 способа, используя обычную консоль: Первый способ, используя стандартный wget: # wget -rEkp [...]]]></description>
			<content:encoded><![CDATA[<p>Копия сайта может пригодится в разных случаях, например для записи на CD/DVD в виде рекламной продукции, либо в тех случаях, когда под рукой нет Интернета, либо для конвертации динамического сайта в статический. Как же удобней всего сделать такую копию? Есть как минимум 2 способа, используя обычную консоль:</p>
<p><span id="more-128"></span><strong>Первый способ</strong>, используя стандартный <strong>wget</strong>:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="c"><pre class="de1"><span class="co2"># wget -rEkp -np -nc http://www.domain.com/</span></pre></div></div></div></div></div></div></div>


<p><strong>Второй способ</strong>, используя <a rel="nofollow" target="_blank" href="http://www.httrack.com/" ><strong>httrack</strong></a>:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="c"><pre class="de1"><span class="co2"># httrack &quot;http://www.domain.com/&quot; -O &quot;./www.domain.com&quot; &quot;+*.www.domain.com/*&quot; -v</span></pre></div></div></div></div></div></div></div>


<p>Первый способ намного более быстрый, но с некоторыми динамическими страницами могут быть проблемы, поэтому на помощь приходит httrack, -  жаль только, работает он гораздо медленнее :(<!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://siava.su/2010/10/25/site-offline-copy-to-disk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Запрет кеширования изображений и статических страниц</title>
		<link>http://siava.su/2009/04/15/disallow-images-and-static-pages-caching/</link>
		<comments>http://siava.su/2009/04/15/disallow-images-and-static-pages-caching/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 10:05:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[disallow cache]]></category>
		<category><![CDATA[запрет]]></category>
		<category><![CDATA[запретить]]></category>
		<category><![CDATA[кеширование изображений]]></category>
		<category><![CDATA[кеширование картинок]]></category>
		<category><![CDATA[кеширование статики]]></category>

		<guid isPermaLink="false">http://siava.su/?p=53</guid>
		<description><![CDATA[Ниже будут перечисленны некоторые методы, позволяющие запретить кеширование статических данных браузером. Это бывает весьма полезно в ряде случаев, но помните, что полный запрет кеширования статики может привести к увеличению нагрузки на сервер и отдаваемый трафик. expires Значением этого заголовка является дата, после которой содержимое ресурса устареет. Если пользователь обратится к ресурсу позднее заданной даты, то [...]]]></description>
			<content:encoded><![CDATA[<p>Ниже будут перечисленны некоторые методы, позволяющие запретить кеширование статических данных браузером. Это бывает весьма полезно в ряде случаев, но помните, что полный запрет кеширования статики может привести к увеличению нагрузки на сервер и отдаваемый трафик.</p>
<p><span id="more-53"></span></p>
<p><strong>expires</strong></p>
<p>Значением этого заголовка является дата, после которой содержимое ресурса устареет. Если пользователь обратится к ресурсу позднее заданной даты, то браузер должен запросить ресурс у сервера, а не из локального кеша. Если заголовок expires содержит дату, прошедшую относительно текущей, то при каждом следующем обращении к ресурсу браузер снова будет обращаться к серверу, а не к локальному кешу :)</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="apache"><pre class="de1"><span class="kw1">header</span> (<span class="st0">&quot;expires: mon, 26 jul 1997 05:00:00 gmt&quot;</span>);</pre></div></div></div></div></div></div></div>


<p><strong>last-modified</strong></p>
<p>Значением данного заголовка является дата последнего обновления ресурса. Большинство современных браузеров используют следующий алгоритм, если ресурс уже находится в локальном кэше:<br />
запрашивает с сервера дату последнего обновления ресурса сравнивает полученную дату и дату ресурса в локальном кэше если ресурс на сервере новее ресурса в кэше &#8211; запрашивается ресурс с сервера.<br />
Если ресурс, расположенный на сервере, содержит в данном поле текущую дату, то браузер будет каждый раз запрашивать ресурс с сервера, а не из локального кэша. Следующий листинг демонстрирует использование поля заголовка last-modified:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="apache"><pre class="de1"><span class="kw1">header</span> (<span class="st0">&quot;last-modified: &quot;</span> . gmdate(<span class="st0">&quot;d, d m y h:i:s&quot;</span>) . <span class="st0">&quot; gmt&quot;</span>);</pre></div></div></div></div></div></div></div>


<p><strong>cache-control и pragma</strong></p>
<p>Поля заголовка, непосредственно отвечающие за кэширование ресурса. Поле «pragma» было определено в стандарте rfc 1945, описывающим протокол http 1.0. Данное поле считается устаревшим, но в некоторых случаях приходится использовать именно его. В частности некоторые proxy-сервера неправильно обрабатывают запросы к постоянно изменяющимся ресурсам, если вместе с ресурсом не передается данное поле заголовка.<br />
Второе поле определено в стандарте rfc 2068, который описывает протокол http 1.1. Данное поле заголовка позволяет запретить кэширование, и каждый раз запрашивать ресурс с сервера. Следующий листинг демонстрирует использование полей заголовка cache-control и pragma для запрета кэширования:</p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="apache"><pre class="de1"><span class="kw1">header</span>(<span class="st0">&quot;cache-control: no-cache, must-revalidate&quot;</span>); <span class="kw1">header</span>(<span class="st0">&quot;pragma: no-cache&quot;</span>);</pre></div></div></div></div></div></div></div>


<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://siava.su/2009/04/15/disallow-images-and-static-pages-caching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Mu rewrite rules для nginx</title>
		<link>http://siava.su/2008/04/28/wordpress-mu-rewrite-rules-for-nginx/</link>
		<comments>http://siava.su/2008/04/28/wordpress-mu-rewrite-rules-for-nginx/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 07:55:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[rewrite rules]]></category>
		<category><![CDATA[WordPress Mu]]></category>

		<guid isPermaLink="false">http://siava.su/?p=3</guid>
		<description><![CDATA[Устанавливая WordPress Mu столкнулся с проблемой перевода rewrite-правил из apache-вого .htaccess в формат для nginx. Ниже приведён пример конфигурации для nginx в котором присутствуют не только готовые rewrite-правила, но и полная конфигурация для сайта. Читайте подробности под катом: server { listen 80; server_name site.com; access_log logs/site.access.log; &#160; location ~* ^.+\.(html&#124;jpg&#124;jpeg&#124;gif&#124;png&#124;ico&#124;css&#124;zip&#124;tgz&#124;gz&#124;rar &#124;bz2&#124;doc&#124;xls&#124;exe&#124;pdf&#124;ppt&#124;txt&#124;tar&#124;mid&#124;midi&#124;wav&#124;bmp&#124;rtf&#124;js)$ { root /home/site.com/public_html; rewrite [...]]]></description>
			<content:encoded><![CDATA[<p>Устанавливая WordPress Mu столкнулся с проблемой перевода rewrite-правил из apache-вого .htaccess в формат для nginx. Ниже приведён пример конфигурации для nginx в котором присутствуют не только готовые rewrite-правила, но и полная конфигурация для сайта. Читайте подробности под катом:<br />
<span id="more-3"></span></p>


<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="apache"><pre class="de1">server {
    <span class="kw1">listen</span> <span class="nu0">80</span>;
    server_name site.com;
    access_log logs/site.access.log;
&nbsp;
    location ~* ^.+\.(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar
	|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$
    {
        root /home/site.com/public_html;
        rewrite ^/.*(/wp-.*/.*\.(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar
	 |bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js))$ $1 last;
        rewrite ^.*/files/(.*(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar
	 |bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js))$
	 /wp-content/blogs.php?file=$1 last;
        expires 30d;
        break;
    }
&nbsp;
    location / {
        root /home/site.com/public_html;
        index index.php;
&nbsp;
        if (!-e $request_filename) {
            rewrite ^.+/?(/wp-.*) $1 last;
            rewrite ^.+/?(/.*\.php)$ $1 last;
            rewrite ^(.+)$ /index.php?q=$1 last;
        }
    }
    error_page <span class="nu0">500</span> <span class="nu0">502</span> <span class="nu0">503</span> <span class="nu0">504</span> /50x.html;
&nbsp;
    location = /50x.html {
        root /var/www/nginx-default;
    }
&nbsp;
    location ~ \.php$ {
        rewrite ^/.*(/wp-.*/.*.php)$ $1;
        fastcgi_pass 127.0.0.1:xxxx;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /home/site.com/public_html$fastcgi_script_name;
        <span class="kw1">include</span> /usr/local/nginx/conf/fastcgi_params;
    }
}
&nbsp;
server {
    server_name www.site.com;
    rewrite ^/(.*) http://site.com/$1 permanent;
}</pre></div></div></div></div></div></div></div>


<p><!-- PHP 5.x --></p>
]]></content:encoded>
			<wfw:commentRss>http://siava.su/2008/04/28/wordpress-mu-rewrite-rules-for-nginx/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

