<?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>OpenSource в заметках &#187; Сеть</title>
	<atom:link href="http://www.ashep.org/category/set-v-linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ashep.org</link>
	<description>Путь к пониманию</description>
	<lastBuildDate>Fri, 09 Mar 2012 07:05:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Бесплатный backup DNS для ваших сайтов</title>
		<link>http://www.ashep.org/2012/besplatnyj-backup-dns-dlya-vashix-sajtov/</link>
		<comments>http://www.ashep.org/2012/besplatnyj-backup-dns-dlya-vashix-sajtov/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 18:30:17 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Сеть]]></category>
		<category><![CDATA[DNS]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2623</guid>
		<description><![CDATA[Думаю, многие сейчас пользуются услугами VPS-хостинга, благо провайдеров развелось множество, да и цены приятно радуют. При организации поддержки DNS доменных имён своих серверов и сайтов можно использовать как сервера регистратора, так и свои собственные. Если же вы решили самостоятельно организовать поддержку DNS своих доменов, но у вас в распоряжении всего один сервер, то тут же [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2012/besplatnyj-backup-dns-dlya-vashix-sajtov/' addthis:title='Бесплатный backup DNS для ваших сайтов' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p>Думаю, многие сейчас пользуются услугами VPS-хостинга, благо провайдеров развелось множество, да и цены приятно радуют. При организации поддержки DNS доменных имён своих серверов и сайтов можно использовать как сервера регистратора, так и свои собственные. Если же вы решили самостоятельно организовать поддержку DNS своих доменов, но у вас в распоряжении всего один сервер, то тут же возникает вопрос: как организовать поддержку вторичного (aka &laquo;backup&raquo;) DNS? Хорошо, если ваш хостинг-провайдер предоставляет такую услугу. А если нет? На помощь придёт сервис бесплатного DNS-хостинга <a href="http://freedns.afraid.org">freedns.afraid.org</a>.</p>
<img class="size-full wp-image-2625 aligncenter" title="Backup DNS" src="http://www.ashep.org/wp-content/uploads/2012/01/vhost.jpg" alt="" width="250" height="188" /><br />
<span id="more-2623"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<h3>Регистрация</h3>
<p>Регистрация на сервисе займёт пару минут и заключается в посещении <a href="http://freedns.afraid.org/signup/">страницы регистрации нового пользователя</a> сервиса, её заполнении (указывайте живой имейл, поскольку учётную запись нужно будет активировать, плюс восстановление пароля в случае чего&nbsp;&mdash; вещь небесполезная) и активации учётной записи.</p>
<p><img class="size-thumbnail wp-image-2626 aligncenter" title="backup-dns-01" src="http://www.ashep.org/wp-content/uploads/2012/01/backup-dns-01-600x470.png" alt="" width="600" height="470" /></p>
<h3>Добавление зоны</h3>
<p>После того, как вы успешно зарегистрируетесь и авторизуетесь в панели управления, можно добавлять зону. В левом меню выберите <em>Backup DNS</em>, после чего в центральной части панели&nbsp;&mdash; <em>&laquo;Add a domain&raquo;</em>:</p>
<p><img class="size-full wp-image-2627 aligncenter" title="Добавление зоны" src="http://www.ashep.org/wp-content/uploads/2012/01/backup-dns-02.png" alt="" width="600" height="163" /></p>
<p>Введите имя зоны, а также имя первичного DNS-сервера и нажмите кнопку <em>&laquo;check&raquo;</em>:</p>
<p><img class="size-full wp-image-2628 aligncenter" title="Добавление зоны" src="http://www.ashep.org/wp-content/uploads/2012/01/backup-dns-03.png" alt="" width="272" height="139" /></p>
<p>В случае успешной проверки вы получите сообщение об этом:</p>
<p><img class="size-thumbnail wp-image-2629 aligncenter" title="Новая зона успешно добавлена" src="http://www.ashep.org/wp-content/uploads/2012/01/backup-dns-04-600x17.png" alt="" width="600" height="17" /></p>
<p>Если сервис сообщит об ошибке, проверьте логи своего первичного DNS-сервера, а также конфигурацию на предмет запрета трансфера зоны потусторонним серверам. Ваш сервер должен разрешать трансфер зоны серверу <strong>ns2.afraid.org</strong>.</p>
<h3>Проверка</h3>
<p>Если ваш сервер DNS корректно настроен, то через пару минут в разделе протоколов <em>&laquo;Backup DNS&raquo;</em> вы увидите сообщение об успешной передаче зоны:</p>
<p><img class="size-thumbnail wp-image-2630 aligncenter" title="Успешная передача зоны" src="http://www.ashep.org/wp-content/uploads/2012/01/backup-dns-05-600x177.png" alt="" width="600" height="177" /></p>
<h3>Обновление NS записей в БД регистратора</h3>
<p>После того, как всё проверено и зона успешно передаётся backup-серверу, осталось лишь обновить информацию о вторичном DNS-сервере у регистратора вашего домена, установив значение соответствующего поля равным <strong>ns2.afraid.org</strong>:</p>
<p><img class="size-thumbnail wp-image-2632 aligncenter" title="Обновление NS-записей у регистратора" src="http://www.ashep.org/wp-content/uploads/2012/01/backup-dns-06-600x300.png" alt="" width="600" height="300" /></p>
<h3>ЗЫЖ</h3>
<p>Заметка не рекламная.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2012/besplatnyj-backup-dns-dlya-vashix-sajtov/' addthis:title='Бесплатный backup DNS для ваших сайтов' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/besplatnyj-backup-dns-dlya-vashix-sajtov/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Настройка SSL в Apache</title>
		<link>http://www.ashep.org/2012/nastrojka-ssl-v-apache/</link>
		<comments>http://www.ashep.org/2012/nastrojka-ssl-v-apache/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 05:38:38 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[Сеть]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[TLS]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2490</guid>
		<description><![CDATA[Сегодня уже никому не нужно объяснять что такое перехват трафика и зачем он нужен. С массовым нашествием беспроводных (и не всегда хорошо защищённых) методов доступа в Интернет необходимость шифрования сетевого трафика стала очевидной не только для пользователей различных интернет-банкингов, но и для тех, кто просто нуждается в защищённом доступе к своему домашнему компьютеру из кафешки [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2012/nastrojka-ssl-v-apache/' addthis:title='Настройка SSL в Apache' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Сегодня уже никому не нужно объяснять что такое перехват трафика и зачем он нужен. С массовым нашествием беспроводных (и не всегда хорошо защищённых) методов доступа в Интернет необходимость шифрования сетевого трафика стала очевидной не только для пользователей различных интернет-банкингов, но и для тех, кто просто нуждается в защищённом доступе к своему домашнему компьютеру из кафешки в другом городе. Некоторые, к примеру, любят пользоваться разнообразными веб-приложениями, вроде <a href="http://www.ashep.org/goto/http://www.fengoffice.com/web/opensource/">Feng Office</a> или <a href="http://www.ashep.org/2011/subsonic-opensource-mediastanciya/">SubSonic</a>, установленными на домашнем сервере. При этом вовсе не хочется, чтобы доступ к кровному контенту достался ещё кому либо. В <a href="http://www.ashep.org/2011/nginx-staticheskij-veb-server-s-ssl/">одной</a> из предыдущих статей, посвящённых Nginx, мы рассматривали настройку SSL-шифрования сайтов, обслуживаемых этим сервером. Сегодняшняя статья посвящена тем, у кого нет Nginx и/или кто не хочет устанавливать его лишь в качестве TLS-прокси к Apache.</p>
<img class="size-full wp-image-2491 aligncenter" title="Картинка с сайта fileden.com" src="http://www.ashep.org/wp-content/uploads/2012/01/cryptography.jpg" alt="" width="250" height="250" /><br />
<span id="more-2490"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p style="text-align: left;">В данной статье описывается настройка TLS в Apache с использованием self-signed сертификата, что не годится для public-ресурсов, но вполне подойдёт для организации работы с вашим личным/командным сервером.</p>
<p style="text-align: left;">При написании заметки в качестве тестовой площадки использовался сервер под управлением <strong>Debian 6.0</strong> и <strong>Apache 2.2.16</strong>.</p>
<h3>Установка OpenSSL</h3>
<p style="text-align: left;">Прежде чем приступать к настройке SSL-сайта в Apache, необходимо создать ключ шифрования, а также self-signed сертификат этого ключа. Данные действия выполняются утилитами, которые не входят в состав Apache и должны быть установлены отдельно, если их нет в вашей системе. В Debian/Ubuntu всё ставится одной командой:</p>
<pre># apt-get install openssl</pre>
<p style="text-align: left;">В других дистрибутивах название пакета скорее всего будет таким же.</p>
<h3>Генерация закрытого ключа и сертификата</h3>
<p style="text-align: left;">В <a href="http://ru.wikipedia.org/wiki/TLS">TLS</a> используются асимметричные алгоритмы шифрования, то есть для шифрования и расшифровки данных используется не один ключ, а пара: открытый и закрытый. Открытый ключ сервера передаётся клиенту вместе с сертификатом сервера на стадии генерации сеансового ключа.</p>
<p style="text-align: left;">Создайте каталог, в котором вы намереваетесь хранить закрытый ключ и сертификат сервера:</p>
<pre># mkdir -p /etc/apache2/ssl</pre>
<p style="text-align: left;">Теперь можно сгенерировать закрытый ключ и self-signed сертификат для него:</p>
<pre># cd /etc/apache2/ssl
# openssl req -new -x509 -nodes -out server.crt -keyout server.key</pre>
<p style="text-align: left;">где <strong>server.key</strong> — имя файла закрытого ключа, а <strong>server.crt</strong> — имя файла сертификата.</p>
<p style="text-align: left;">Перед генерацией утилита предложит ответить вам на несколько вопросов, касательно данных, которыми будут заполнены поля сертификата. Поскольку он самоподписанный, можно не заморачиваться, а оставить всё как есть:</p>
<pre>Generating a 1024 bit RSA private key
..............++++++
..............................................................++++++
writing new private key to '/etc/apache2/ssl/server.key'
-----
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:</pre>
<p style="text-align: left;">После того, как ключ и сертификат будут готовы, не забудьте ограничить доступ к файлу закрытого ключа:</p>
<pre># chmod 0600 /etc/apache2/ssl/server.key</pre>
<h3>Включение mod_ssl</h3>
<p style="text-align: left;">Чтобы иметь возможность пользоваться благами SSL, в Apache необходимо включить соответствующий модуль, реализующий нужный функционал:</p>
<pre># a2enmod ssl</pre>
<p style="text-align: left;">а также включить работу виртуальных хостов на порту 443, отредактировав соответствующий участок файла <strong>/etc/apache2/ports.conf</strong>:</p>
<pre>&lt;IfModule mod_ssl.c&gt;
 Listen 443
 NameVirtualHost *:443
&lt;/IfModule&gt;</pre>
<h3>Настройка сайта Apache</h3>
<p style="text-align: left;">Теперь, когда ключ и сертификат готовы, а поддержка SSL в Apache включена, можно приступать к настройке сайта. Создайте конфигурацию виртуального хоста для вашего защищённого сайта (предположим, что вы расположили его в каталоге <strong>/var/www/secure</strong>) в файле <strong>/etc/apache2/site-available/secure</strong>:</p>
<pre>&lt;IfModule mod_ssl.c&gt;
&lt;VirtualHost *:443&gt;
 ServerName secure.localdomain
 ServerAdmin webmaster@localhost
 DocumentRoot /var/www/secure
 SSLEngine on
 SSLCertificateKeyFile /etc/apache2/ssl/server.key
 SSLCertificateFile    /etc/apache2/ssl/server.crt
&lt;/VirtualHost&gt;
&lt;/IfModule&gt;</pre>
<p style="text-align: left;">Обратите внимание на директивы SSL:</p>
<ul>
<li><strong>SSLEngine</strong> включает или отключает работу модуля mod_ssl;</li>
<li><strong>SSLCertificateKeyFile</strong> определяет путь к файлу закрытого ключа сервера;</li>
<li><strong>SSLCertificateFile</strong> определяет путь к файлу сертификата.</li>
</ul>
<p style="text-align: left;">Конечно же, опций, отвечающих за настройку поведения mod_ssl гораздо больше и множество из них определены по умолчанию в файле <strong>/etc/apache2/mods-available/ssl.conf</strong>. Целью данной заметки являлось создание руководства из серии «за две минуты» и поэтому освещён необходимый минимум знаний. Желающим углубиться в раскопки недр работы и настройки TLS в Apache советую в первую очередь посетить <a href="http://www.ashep.org/goto/http://httpd.apache.org/docs/2.0/ssl/">официальную страницу документации</a>, а также <a href="http://www.ashep.org/goto/http://httpd.apache.org/docs/2.0/mod/mod_ssl.html">справочник по опциям mod_ssl</a>.</p>
<p style="text-align: left;">Теперь, когда всё готово к работе, можно включать созданный виртуальный хост:</p>
<pre># a2ensite secure</pre>
<p style="text-align: left;">и перезапускать Apache:</p>
<pre># /etc/init.d/apache2 restart</pre>
<h3>Проверка</h3>
<p style="text-align: left;">Если всё прошло успешно и вы не получили никаких ошибок в результате перезапуска сервера, самое время проверить результаты работы. Открыв в браузере URL вашего сайта, вы должны увидеть предупреждение о риске для вашей безопасности в связи с тем, что сайт использует self-signed сертификат:</p>
<p><img class=" wp-image-2493 aligncenter" title="Предупреждение" src="http://www.ashep.org/wp-content/uploads/2012/01/ff-ssl-011-600x385.png" alt="" width="600" height="385" /></p>
<p style="text-align: left;">Добавив этот сайт в исключения, вы получите полноценное TLS-шифрование трафика, спрятав таким образом от любопытных глаз ваши диалоги с HTTP-сервером:</p>
<p style="text-align: left;"><img class="size-full wp-image-2494 aligncenter" title="SSL в Firefox" src="http://www.ashep.org/wp-content/uploads/2012/01/ff-ssl-02.png" alt="" width="600" height="548" /></p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2012/nastrojka-ssl-v-apache/' addthis:title='Настройка SSL в Apache' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2012/nastrojka-ssl-v-apache/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>7 альтернатив DropBox</title>
		<link>http://www.ashep.org/2011/7-alternativ-dropbox/</link>
		<comments>http://www.ashep.org/2011/7-alternativ-dropbox/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 11:23:48 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Рабочий стол]]></category>
		<category><![CDATA[Сеть]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[Minus]]></category>
		<category><![CDATA[SparkleShare]]></category>
		<category><![CDATA[SpiderOak]]></category>
		<category><![CDATA[TeamDrive]]></category>
		<category><![CDATA[Ubuntu One]]></category>
		<category><![CDATA[Wuala]]></category>
		<category><![CDATA[ZumoDrive]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2468</guid>
		<description><![CDATA[DropBox, вероятно, один из самых популярных онлайн-сервисов хранения и синхронизации файлов среди пользователей Linux. Но есть ли ему достойные конкуренты? Давайте посмотрим. SparkleShare SparkleShare&#160;&#8212; бесплатная утилита с открытым исходным кодом для организации совместной работы с файлами, разработанная таким образом, чтобы максимально упростить пользователям настройку и работу с программой. Программа создаёт в домашнем каталоге пользователя каталог [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/7-alternativ-dropbox/' addthis:title='7 альтернатив DropBox' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.ashep.org/tag/dropbox">DropBox</a>, вероятно, один из самых популярных онлайн-сервисов хранения и синхронизации файлов среди пользователей Linux. Но есть ли ему достойные конкуренты? Давайте посмотрим.</p>
<img class="size-full wp-image-2469 aligncenter" title="Dropbox Alternative" src="http://www.ashep.org/wp-content/uploads/2011/07/dropbox-alternative.png" alt="" width="200" height="158" /><br />
<span id="more-2468"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<h3 style="text-align: justify;">SparkleShare</h3>
<p style="text-align: justify;"><strong>SparkleShare</strong>&nbsp;&mdash; бесплатная утилита с открытым исходным кодом для организации совместной работы с файлами, разработанная таким образом, чтобы максимально упростить пользователям настройку и работу с программой. Программа создаёт в домашнем каталоге пользователя каталог с именем SparkleShare, к которому можно подключить множество удалённых каталогов для синхронизации, которые могут быть расположены на разных серверах. Помимо всего прочего SparkleShare обладает системой уведомлений, похожей на DropBox. Установить утилиту можно из PPA-репозитория:</p>
<pre>$ mkdir -p ~/.ssh
$ sudo add-apt-repository ppa:warp10/sparkleshare
$ sudo apt-get update
$ sudo apt-get install sparkleshare libwebkit1.1-cil git-core</pre>
<p style="text-align: justify;">Первая команда нужна, если у вас нет каталога <em>~/.ssh</em>, поскольку без него SparkleShare &laquo;вылетает&raquo;. На <a href="http://www.webupd8.org/2011/03/install-sparkleshare-in-ubuntu-via-ppa.html">webupd8</a> об это можно прочесть подробней. Если вашим Linux является не Ubuntu, вы можете собрать SparkleShare из исходных кодов, скаченных с соответствующей <a href="http://sparkleshare.org/linux-downloads/">страницы</a> проекта.</p>
<p><img class="size-full wp-image-2470 aligncenter" title="SparkleShare" src="http://www.ashep.org/wp-content/uploads/2011/07/sparkleshare_online_storage.png" alt="" width="281" height="200" /></p>
<h3 style="text-align: justify;">SpiderOak</h3>
<p style="text-align: justify;"><strong>SpiderOak</strong>&nbsp;&mdash; утилита для резервного копирования, разделения и синхронизации файлов, работающая под Windows, Mac и Linux. Сервис хранит файлы пользователей в зашифрованном виде, при этом ключ шифрования создаётся и хранится на клиентской стороне, так что даже сотрудники сервиса не смогут получить доступ к персональным данным своих клиентов. SpiderOak предлагает 2 гигабайта бесплатно и 10 долларов в месяц за каждые дополнительные 100 гигабайт. Некоторые части клиента являются OpenSource и владельцы сервиса планируют в ближайшем будущем открыть исходные коды целиком.</p>
<p style="text-align: justify;">Загрузить SpiderOak для Windows, Mac и почти всех популярных версий Linux, включая Ubuntu, Debian, Fedora, CentOS/RHEL и Slackware, можно со <a href="https://spideroak.com/download/">страницы загрузок</a> проекта.</p>
<p><img class="size-full wp-image-2472 aligncenter" title="SpiderOak" src="http://www.ashep.org/wp-content/uploads/2011/07/spideroak-online_filestorage.jpg" alt="" width="446" height="229" /></p>
<h3 style="text-align: justify;">Ubuntu One</h3>
<p style="text-align: justify;"><strong>Ubuntu One</strong>, собственный облачный сервис <em>Canonical</em>, не нуждается в представлении. Если вы являетесь пользователем Ubuntu, у вас, скорее всего, уже установлен клиент Ubuntu One. Клиент в Ubuntu 11.04 получил обновлённый интерфейс и предлагает бесплатно 2 GB после регистрации. Существует также <a href="https://wiki.ubuntu.com/UbuntuOne/Windows">версия клиента для Windows</a>, находящаяся в данный момент в стадии публичного тестирования. Существенным недостатком Ubuntu One является пока что слабенькая поддержка сред, отличных от GNOME, а также проприетарная политика Canonical в отношении серверной части Ubuntu One. Больше информации вы можете получить в треде на <a href="http://askubuntu.com/questions/10271/is-running-ubuntu-one-on-debian-possible">askubuntu</a>. Каждый желающий может <a href="https://one.ubuntu.com/">подключиться к Ubuntu One</a>, а также ознакомиться с существующими <a href="https://one.ubuntu.com/plans/">тарифными планами</a>.</p>
<p><img class="size-full wp-image-2473 aligncenter" title="Ubuntu One" src="http://www.ashep.org/wp-content/uploads/2011/07/ubuntuone.png" alt="" width="600" height="455" /></p>
<h3 style="text-align: justify;">Wuala</h3>
<p style="text-align: justify;"><a href="http://www.ashep.org/tag/wuala/">Wuala</a>&nbsp;&mdash; ещё один онлайн-сервис для хранения, резервного копирования, синхронизации и разделения файлов, предлагающий клиенты под Windows, Mac и Linux. Сервис предлагает бесплатно 1 гигабайт пространства изначально, код клиента закрыт. Для <a href="http://www.ashep.org/goto/http://www.wuala.com/en/download">скачивания</a> доступны deb-пакеты для Ubuntu и других Debian-based дистрибутивов, а также RPM-пакеты для  Fedora, Red Hat и CentOS.</p>
<p><img class="size-full wp-image-2475 aligncenter" title="Wuala" src="http://www.ashep.org/wp-content/uploads/2011/07/wuala_ubuntu1104.png" alt="" width="600" height="450" /></p>
<h3>Minus</h3>
<p style="text-align: justify;">Вероятно, самый простецкий из онлайн-хранилищ файлов. Установив <a href="http://www.ashep.org/goto/http://min.us/pages/tools">клиентское приложение Minus</a> для рабочего стола, вы получите возможность отправлять в онлайн-хранилище файлы путём старого-доброго Drag&#39;n&#39;Drop-а нужного контента на иконку приложения. Доступны клиенты для Mac, Linux, Windows, Windows Phone 7, Andorid, iPhone, а также расширения для Firefox и Chrome.</p>
<p><img class="size-full wp-image-2477 aligncenter" title="Minus" src="http://www.ashep.org/wp-content/uploads/2011/07/minus_online_filesharing.png" alt="" width="492" height="156" /></p>
<h3 style="text-align: justify;">ZumoDrive</h3>
<p style="text-align: justify;">Облачный сервис, предлагающий 2 гигабайта бесплатного пространства зарегистрировавшимся пользователям. Клиент сервиса существует под Windows, Mac, Linux, iOS, Android и Palm webOS. Предлагаемые тарифные планы варьируются в диапазоне от 10 до 500 гигабайт по цене от 3 до 80 долларов в месяц. Для Linux <a href="http://www.ashep.org/goto/https://www.zumodrive.com/download/zumodrive">доступны</a> DEB и RPM-сборки.</p>
<p><img class="size-full wp-image-2479 aligncenter" title="ZumoDrive" src="http://www.ashep.org/wp-content/uploads/2011/07/zumodrivelogo.png" alt="" width="293" height="293" /></p>
<h3>TeamDrive</h3>
<p style="text-align: justify;">Проприетарный сервис, предназначенный для совместной работы с файлами, их синхронизации и хранения. Доступны <a href="http://www.ashep.org/goto/http://www.teamdrive.com/download.html">клиенты</a> под Windows, Mac и Linux. Как и многие другие, TeamDrive предлагает бесплатно 2 гигабайта дискового пространства. Среди интересностей можно отметить присутствие <a href="http://www.ashep.org/goto/http://www.teamdrive.com/addons.html">плагина для OpenOffice</a>, призванного облегчить соместную работу над документами.</p>
<p><img class="size-thumbnail wp-image-2480 aligncenter" title="TeamDrive" src="http://www.ashep.org/wp-content/uploads/2011/07/teamdrive_linux_client_ubuntu-600x306.png" alt="" width="600" height="306" /></p>
<p style="text-align: right;">Источник: <a href="http://www.ashep.org/goto/http://www.techdrivein.com/2011/06/7-good-dropbox-alternatives-for-linux.html">techdrivein.com</a></p>
<hr />
<p style="text-align: justify;">Собираетесь приобрести новый гаджет? <a href="http://tovlist.com/article_obzor-htc-desire-hd">Обзор HTC Desire HD</a>, а также множества других популярных электронных девайсов поможет сделать вам правильный выбор перед покупкой.</p>
<p>&nbsp;</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/7-alternativ-dropbox/' addthis:title='7 альтернатив DropBox' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2011/7-alternativ-dropbox/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Wuala. Безопасное хранилище</title>
		<link>http://www.ashep.org/2011/wuala-bezopasnoe-xranilishhe/</link>
		<comments>http://www.ashep.org/2011/wuala-bezopasnoe-xranilishhe/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 15:58:10 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[Рабочий стол]]></category>
		<category><![CDATA[Сеть]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[Wuala]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2314</guid>
		<description><![CDATA[Жизнь многих давным-давно уже перебралась в веб. Люди общаются, дружат, ссорятся, наслаждаются, и ещё много-много чего хотите в онлайне. Локальные залежи музыки и фоток уже давно никому не интересны. Людям хочется делиться друг с другом файлами, впечатлениями, музыкой, документами. Да и локальные файлы многим  хочется несколько обезопасить на случай умирания жёсткого диска и отсутствия бэкапов, [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/wuala-bezopasnoe-xranilishhe/' addthis:title='Wuala. Безопасное хранилище' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Жизнь многих давным-давно уже перебралась в веб. Люди общаются, дружат, ссорятся, наслаждаются, и ещё много-много чего хотите в онлайне. Локальные залежи музыки и фоток уже давно никому не интересны. Людям хочется делиться друг с другом файлами, впечатлениями, музыкой, документами. Да и локальные файлы многим  хочется несколько обезопасить на случай умирания жёсткого диска и отсутствия <a href="http://www.ashep.org/tag/backup/">бэкапов</a>, да и вообще идея доступа к своим файлам из любой точки мира весьма занимательна сама по себе, особенно для людей, которые много перемещаются и не всегда могут возить с собой ноутбук, подключённый к Сети.</p>
<img class="size-full wp-image-2359 aligncenter" title="Wuala Logo" src="http://www.ashep.org/wp-content/uploads/2011/06/Wuala-Logo.png" alt="" width="194" height="50" /><br />
<span id="more-2314"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p style="text-align: justify;">По этим и некоторым другим причинам онлайн-сервис хранения файлов <a href="http://www.ashep.org/tag/dropbox/">DropBox</a> стал таким популярным.  Предоставляя пользователям бесплатного аккаунта 2 гигабайта дискового пространства, DropBox даёт возможность пользователям иметь резервные копии особо важных файлов, при этом получать к ним доступ почти с любого компьютера, подключённого к сети, а также делиться отдельными или всеми файлами хоть со всем миром!</p>
<p style="text-align: justify;">Однако многие не обратили внимание на одно &laquo;но&raquo;. Ваши файлы, хранящиеся на серверах DropBox, находятся там в открытом виде, то есть любой недобросовестный сотрудник DropBox или же умник, получивший доступ к содержимому их хранилища с помощью взлома, получит доступ к вашим файлам. Хорошо, конечно, если самым &laquo;страшным&raquo; среди ваших секретов окажется то, как вы с нарисованными усами спите в ванной на вечеринке друга, посвящённой дню системного администратора... А что, если у вас есть данные, закрытость которых от публичного доступа определяет побольше, вплоть до вашего благополучия и свободы? Что, если благодаря известным <a href="http://www.ashep.org/2011/uyazvimost-v-kliente-dropbox/">уязвимостям в DropBox</a>, кто-то сможет получить то, что ему вовсе не предназначалось?</p>
<p style="text-align: justify;">Рад вам представить <strong>Wuala</strong>&nbsp;&mdash; безопасное онлайн-хранилище файлов из Швейцарии. Во многом Wuala предоставляет те же возможности, что и DropBox, однако есть интересные дополнения, о которых мы с вами поговорим далее в этой статье, а пока&nbsp;&mdash; краткий перечень возможностей сервиса:</p>
<ul>
<li><strong>Безопасность.</strong> Данные, хранящиеся на серверах Wuala, а также в локальном кэше клиента, установленного в вашем компьютере, надёжно зашифрованы. Ко всему прочему ваш пароль никогда не передаётся сервису, поэтому доступ к нему никто кроме вас получить не может (естественно, если вы его сами кому-нибудь не сообщите).</li>
<li><strong>Резервное копирование и контроль версий.</strong> Wuala позволяет хранить различные версии одних и тех же файлов, что даст вам возможность не беспокоиться в случае ненужного случайного удаления или изменения файлов.</li>
<li><strong>Синхронизация.</strong> При помощи этой функции вы сможете автоматически синхронизировать ваши файлы между несколькими компьютерами, что избавит вас от необходимости настраивать <a href="http://www.ashep.org/2010/sinxronizaciya-dannyx-prosto-i-so-vkusom/">синхронизацию</a> или же выполнять ручное копирование фалов между компьютерами.</li>
<li><strong>Доступ отовсюду.</strong> Вы сможете получить доступ к своим файлам из любой точки мира, таким образом вам не нужно постоянно таскать с собой ноутбук.</li>
<li><strong>Разделение доступа.</strong> При помощи Wuala вы сможете избавиться от необходимости отправлять файлы вашим  друзьям, коллегам и знакомым по почте.</li>
<li><strong>Совместная работа.</strong> Вы можете создавать группы пользователей, и предоставлять им ваши файлы для совместной работы, что опять-таки избавит вас от необходимости обмениваться с коллегами изменёнными версиями файлов по почте.</li>
<li><strong>Торговля дисковым пространством. </strong> Вы можете обменивать свободное дисковое пространство вашего компьютера на дополнительное пространство для вашей учётной записи на Wuala.</li>
</ul>
<p style="text-align: justify;">Ниже вы можете посмотреть промо-ролик Wuala на английском, наглядно демонстрирующий всё вышеперечисленное:</p>
<p style="text-align: center;"><object width="600" height="360"><param name="movie" value="http://www.youtube.com/v/pQXJfTXtyuU&amp;rel=0&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed type="application/x-shockwave-flash" width="640" height="390" src="http://www.youtube.com/v/pQXJfTXtyuU&amp;rel=0&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<h3 style="text-align: justify;">Установка</h3>
<p style="text-align: justify;">Клиент Wuala создан на Java и существует для нескольких платформ: Linux, Mac, Windows, Android и iPhone. В этой статье рассматривается установка Wuala под <em>Ubuntu Linux 10.10</em>, а на сайте сервиса вы сможете найти установщик или пакет для вашей платформы, если она отличается от рассматриваемой здесь.</p>
<p style="text-align: justify;">Перейдите на <a href="http://www.wuala.com/">сайт сервиса</a> и кликните по большой красной кнопке <em>Download</em>:</p>
<p><img class="size-full wp-image-2318 aligncenter" title="Сайт Wuala" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-01.png" alt="" width="600" height="387" /></p>
<p style="text-align: justify;">после чего вы будете автоматически перемещены на страницу загрузок, соответствующую вашей ОС, где сможете выбрать подходящую вашей платформе ссылку на скачивание установочного пакета. Я выбрал свой вариант:</p>
<p><img class="size-full wp-image-2319 aligncenter" title="Скачивание deb-пакета Wuala" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-02.png" alt="" width="441" height="191" /></p>
<p style="text-align: justify;">После того, как файл будет сохранён, установите его удобным для вас способом. Я выбрал для этих целей <em>Ubuntu Software Center</em>:</p>
<p><img class="size-full wp-image-2320 aligncenter" title="Wuala в Ubuntu Software Center" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-03.png" alt="" width="600" height="529" /></p>
<p style="text-align: justify;">Теперь, когда пакет установлен, ссылка на запуск приложения появилась в <em>Gnome Menu</em>:</p>
<p><img class="size-full wp-image-2321 aligncenter" title="Wuala в Gnome Menu" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-04.png" alt="" width="243" height="152" /></p>
<p>Запустив приложение, необходимо создать новую учётную запись, если у вас ещё нет таковой:</p>
<p><img class="size-thumbnail wp-image-2322 aligncenter" title="Лицензионное соглашение Wuala" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-05-600x435.png" alt="" width="600" height="435" /></p>
<p>Вы получите изначально <em>2 гигабайта дискового пространства вместо одного</em>, если введёте при регистрации промо-код <strong>7NKMKJCG3AP74GGKAPAB</strong> в поле <em>&laquo;Promo code&raquo;</em></p>
<p><img class="size-full wp-image-2323 aligncenter" title="Регистрация нового пользователя Wuala" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-06.png" alt="" width="490" height="526" /></p>
<p>Если всё пройдёт успешно, перед вами откроется клиент Wuala, отображающий содержимое ваших данных, хранящихся на сервисе:</p>
<p><img class="size-thumbnail wp-image-2324 aligncenter" title="Клиент Wuala" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-07-600x399.png" alt="" width="600" height="399" /></p>
<p>а также значок программы в системном лотке:</p>
<p><img class="size-full wp-image-2327 aligncenter" title="Wuala в системном лотке" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-10.png" alt="" width="414" height="31" /></p>
<p>Всё, вот и вся установка!</p>
<h3>Интеграция с файловой системой</h3>
<p style="text-align: justify;">У клиента Wuala есть возможность интегрироваться в файловую систему а-ля DropBox, то есть, для сохранения файлов на сервере Wuala, вам их нужно просто поместить в специальный каталог. Этот самый специальный каталог создаётся программой в домашнем каталоге пользователя, что мне не очень понравилось и я решил отключить эту опцию, а для управления файлами использовать возможности клиента Wuala.</p>
<p><img class="size-full wp-image-2328 aligncenter" title="Интеграция Wuala с файловой системой" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-08.png" alt="" width="600" height="477" /></p>
<p style="text-align: justify;">Если вам, подобно мне, больше нравится именно такой вариант, откройте меню <em>&laquo;Edit&nbsp;&mdash; Preferences...&raquo;</em> и в разделе <em>&laquo;General&raquo;</em> снимите птичку <em>&laquo;Enable filesystem integration&raquo;</em>, после чего перезапустите Wuala, кликнув правой кнопкой по значку программы в системном лотке, выбрав <em>&laquo;Exit&raquo;</em> и запустив её снова.</p>
<p><img class="size-thumbnail wp-image-2329 aligncenter" title="Отключение интеграции Wuala с файловой системой" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-09-600x450.png" alt="" width="600" height="450" /></p>
<h3 style="text-align: justify;">Добавление каталогов</h3>
<p style="text-align: justify;">Чтобы добавить в хранилище каталог с файлами, выберите в меню клиента <em>&laquo;File&nbsp;&mdash; Add Folder to Wuala&raquo;</em> и укажите нужный каталог с файлами:</p>
<p><img class="size-full wp-image-2331 aligncenter" title="Выбор каталога для добавления" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-11.png" alt="" width="532" height="562" /></p>
<p>и после нажатия &laquo;ОК&raquo; дождитесь добавления всех файлов:</p>
<p><img class="size-full wp-image-2332 aligncenter" title="Загрузка файлов" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-12.png" alt="" width="401" height="172" /></p>
<p>Вуаля! Вот и наш каталог на серверах Wuala:</p>
<p><img class="size-full wp-image-2336 aligncenter" title="Клиент Wuala" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-13.png" alt="" width="600" height="407" /></p>
<h3>Просмотр свойств файлов и каталогов, комментарии</h3>
<p style="text-align: justify;">После того, как вы добавили файлы/каталоги в Wuala, вы можете просматривать их свойства при необходимости. Сделать это можно либо при помощи контекстного меню файла/каталога, выбрав <em>&laquo;Properties...&raquo;</em>:</p>
<p><img class="size-full wp-image-2337 aligncenter" title="Окно свойств" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-14.png" alt="" width="366" height="380" /></p>
<p style="text-align: justify;">либо развернув панель свойств, кликнув на небольшой выступающий треугольник в окне клиента справа:</p>
<p><img class="size-full wp-image-2338 aligncenter" title="Панель свойств" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-15.png" alt="" width="600" height="409" /></p>
<p style="text-align: justify;">Как видно, в окне свойств в отличие от панели предлагается больше информации и различных действий. В частности, вы можете увидеть и скопировать ссылку для доступа к объекту через веб, и сменить область видимости объекта (об этом&nbsp;&mdash; дальше). Зато в панели свойств вы можете добавлять комментарии к объектам, чего нельзя сделать непосредственно из окна свойств. Также комментарии можно добавлять из контекстного меню объекта, выбрав <em>&laquo;Add Comment...&raquo;</em>.</p>
<h3 style="text-align: justify;">Корзина</h3>
<p style="text-align: justify;">Думаю, вы уже обратили внимание на присутствие корзины в клиенте. Да, это именно то, о чём вы подумали! Удаляя файлы на сервисе, вы удаляете их в корзину, что весьма удобно, а иногда и крайне полезно, поскольку восстановить случайно удалённое в этом случае&nbsp;&mdash; дело пары секунд.</p>
<h3 style="text-align: justify;">Резервные копии</h3>
<p style="text-align: justify;">О необходимости резервного копирования уже столько разговоров говорено, что кажется, ежу  понятна важность сего дела. Однако сплошь и рядом возникают ситуации, когда пользователи, надеясь на &laquo;авось&raquo; и попросту говоря, проявляя свою лень во всей своей красе, пальцем не пошевелили, чтобы хоть как-то обеспечить сохранность своих данных.</p>
<p style="text-align: justify;">Думаю, благодаря Wuala, энтузиастов делать резервные копии должно стать больше, поскольку настроить резервное копирование в этом случае&nbsp;&mdash; дело пары минут, после чего данные будут храниться в надёжном &laquo;облаке&raquo; сервиса, откуда вы всегда сможете извлечь нужное в случае каких-то непредвиденных ситуаций. Вдобавок отслеживание версий файлов даст вам возможность извлечь нужный файл в нужном состоянии.</p>
<p style="text-align: justify;">Чтобы создать объект резервного копирования, необходимо в верхней панели клиента (или в меню <em>&laquo;File&raquo;</em>) нажать кнопку <em>&laquo;New&raquo;</em> и в появившемся меню выбрать <em>&laquo;Backup...&raquo;</em>, после чего в появившемся окне выбрать источник для создания резервных копий, указать каталог для хранения бэкапов на сервисе, опционально указать фильтр для отсева ненужных файлов и частоту созданий копий:</p>
<p><img class="size-full wp-image-2340 aligncenter" title="Создание резервной копии" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-16.png" alt="" width="459" height="359" /></p>
<p>После нажатия на кнопку &laquo;ОК&raquo; окно клиента примет примерно такой вид, показывая в верхней части информацию о резервной копии:</p>
<p><img class="size-full wp-image-2341 aligncenter" title="Резервная копия" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-17.png" alt="" width="600" height="401" /></p>
<p style="text-align: justify;">Теперь Wuala будет наблюдать за изменениями в файлах указанного вами каталога и при необходимости отправлять изменения на сервис. Если вдруг в какой-то момент вам понадобится восстановить из резервной копии файл или каталог в каком-то состоянии, вы сможете сделать это при помощи контекстного меню:</p>
<p><img class="size-full wp-image-2342 aligncenter" title="Восстановление резервной копии" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-18.png" alt="" width="600" height="334" /></p>
<h3 style="text-align: justify;">Синхронизация</h3>
<p style="text-align: justify;">Синхронизацию часто путают с резервным копированием из-за того, что многие рассматривают резервное копирование как &laquo;процесс создания копии чего-то где-то&raquo;, что не совсем правильно. Резервное копирование, как правило, подразумевает контроль версий файлов. А вот синхронизация&nbsp;&mdash; нет. Задача синхронизации файлов состоит в том, чтобы поддерживать одинаковость состояний файлов и каталогов во всех синхронизируемых точках. В этом смысле данная функция Wuala полностью аналогична функции DropBox.</p>
<p style="text-align: justify;">Чтобы создать объект синхронизации, необходимо в верхней панели клиента (или в меню <em>&laquo;File&raquo;</em>) нажать кнопку <em>&laquo;New&raquo;</em> и в появившемся меню выбрать <em>&laquo;Sync...&raquo;</em>,  после чего в появившемся окне выбрать источник синхронизации и указать каталог для хранения объекта синхронизации на сервисе:</p>
<p><img class="size-full wp-image-2344 aligncenter" title="Создание синхронизации" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-19.png" alt="" width="459" height="278" /></p>
<p style="text-align: justify;">После нажатия на кнопку &laquo;ОК&raquo; вы увидите созданный объект синхронизации, а в верхней панели&nbsp;&mdash; информацию о том, между сколькими компьютерами он синхронизируется:</p>
<p><img class="size-full wp-image-2345 aligncenter" title="Синхронизация" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-20.png" alt="" width="566" height="448" /></p>
<h3 style="text-align: justify;">Совместная работа</h3>
<p style="text-align: justify;">Для организации совместной работы над файлами в Wuala сперва необходимо создать <em>&laquo;группу&raquo;</em>. Работа в группе аналогична работе с &laquo;персональном&raquo; режиме, то есть вы можете так же добавлять файлы, каталоги, резервные копии, синхронизации, только при этом работать над файлами сможете не только вы, но и члены группы, которым вы дадите доступ.</p>
<p style="text-align: justify;">Чтобы создать группу,  в верхней панели клиента (или в меню <em>&laquo;File&raquo;</em>) нажмите кнопку <em>&laquo;New&raquo;</em> и в появившемся меню выберите <em>&laquo;Group...&raquo;</em>. В следующем окне необходимо выбрать имя для вашей группы, её тип и нажать <em>&laquo;Create&raquo;</em>:</p>
<p><img class="size-full wp-image-2347 aligncenter" title="Создание группы" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-21.png" alt="" width="533" height="599" /></p>
<p style="text-align: justify;">Обратите внимание на опцию <em>&laquo;Web access through secret weblink&raquo;</em>, отметив которую вы сможете предоставить доступ другим через веб к файлам группы при помощи секретной ссылки. При необходимости вы можете создать открытую группу, переставив переключатель на <em>&laquo;Public Group&raquo;</em>. Файлы такой группы будут доступны для чтения всем, в том числе и поисковым ботам и к группе смогут присоединяться все желающие. Присоединившиеся к группе пользователи получат доступ к файлам на запись.</p>
<p><img class="size-full wp-image-2348 aligncenter" title="Участники группы" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-22.png" alt="" width="562" height="519" /></p>
<p><img class="size-full wp-image-2350 aligncenter" title="Файлы группы" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-23.png" alt="" width="564" height="587" /></p>
<p>После того, как файлы добавлены, можно приглашать участников, воспользовавшись контекстным меню группы:</p>
<p><img class="size-full wp-image-2351 aligncenter" title="Приглашение участников" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-24.png" alt="" width="561" height="506" /></p>
<p style="text-align: justify;">Приглашённые в группу пользователи могут иметь одну из трёх ролей. Имена и права этих ролей можно редактировать в окне управления группой, доступном из контекстного меню группы &laquo;Manage Group...&raquo;:</p>
<p><img class="size-full wp-image-2352 aligncenter" title="Управление группой" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-25.png" alt="" width="533" height="645" /></p>
<p style="text-align: justify;">Используя переключатель <em>&laquo;Default Role for new Members&raquo;</em>, вы можете определять роль по умолчанию для новых участников вашей группы.</p>
<h3 style="text-align: justify;">Общий доступ к файлам</h3>
<p style="text-align: justify;">Часто бывает нужно поделиться с кем-то парой-тройкой файлов, при этом нет никакого желания заморачиваться с отправкой файла электронной почтой (ох уж эта лень человеческая!). Wuala предлагает простой и быстрый способ предоставления общего доступа к вашим файлам (точнее, каталогам). Кликните по нужному каталогу правой кнопкой и в контекстном меню выберите <em>&laquo;Share this Folder&nbsp;&mdash; Sharing &amp; Access...&raquo;</em>:</p>
<p><img class="size-full wp-image-2354 aligncenter" title="Общий доступ" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-26.png" alt="" width="590" height="527" /></p>
<p>В появившемся окне вы сможете выбрать нужный вам способ предоставления общего доступа к каталогу, а также выбрать пользователей из ваших Wuala-контактов:</p>
<p><img class="size-full wp-image-2355 aligncenter" title="Настройка общего доступа к каталогу" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-27.png" alt="" width="552" height="615" /></p>
<h3>Торговля пространством</h3>
<p>Если у вас какое-то количество свободного дискового пространства, которым вы не прочь поделиться с другими, вы можете сделать это в обмен на дополнительное пространство от Wuala для себя. Единственное условие: вы должны быть в онлайне не менее 4 часов в сутки. Для того, чтобы включить опцию торговли пространством, откройте <em>&laquo;Edit&nbsp;&mdash; Preferences...&raquo;</em>, перейдите в раздел &laquo;Trading&raquo; и поставьте птичку <em>&laquo;Trade up to&raquo;</em>, выбрав количество гигабайт, которые вы готовы предоставить народу в раздельное пользование:</p>
<p><img class="size-full wp-image-2357 aligncenter" title="Торговля дисковым пространством" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-28.png" alt="" width="600" height="364" /></p>
<h3>Локализация</h3>
<p>Ах, да, чуть не забыл! Интерфейс клиента Wuala переведён на множество языков, среди которых есть и русский:</p>
<p><img class="size-full wp-image-2358 aligncenter" title="Локализация Wuala" src="http://www.ashep.org/wp-content/uploads/2011/06/wuala-29.png" alt="" width="478" height="556" /></p>
<h3>Резюме</h3>
<p style="text-align: justify;">Отличный сервис, во многом превосходящий DropBox. Гибкость и безопасность, а также недорогие <a href="http://wuala.com/en/pricing/">расценки</a> (<em>от 19 евро за 10 гигабайт в год</em>) делают Wuala отличным решением для тех, кому нужно надёжное хранилище для своих файлов.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/wuala-bezopasnoe-xranilishhe/' addthis:title='Wuala. Безопасное хранилище' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2011/wuala-bezopasnoe-xranilishhe/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Подключение к WebDAV-ресурсам</title>
		<link>http://www.ashep.org/2011/podklyuchenie-k-webdav-resursam/</link>
		<comments>http://www.ashep.org/2011/podklyuchenie-k-webdav-resursam/#comments</comments>
		<pubDate>Mon, 23 May 2011 13:52:26 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Сеть]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Konqueror]]></category>
		<category><![CDATA[Nautilus]]></category>
		<category><![CDATA[WebDAV]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2188</guid>
		<description><![CDATA[В прошлый раз мы с вами рассматривали способ настройки WebDAV-ресурса под управлением Apache2. В сегодняшней небольшой заметке я предлагаю вам познакомиться со способами подключения к WebDAV-ресурсам из популярных графических файловых менеджеров Linux и MS Windows. Nautilus Файловый менеджер GNOME имеет встроенную поддержку протокола DAV, поэтому его пользователям ничего доустанавливать не нужно и всё, что нужно [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/podklyuchenie-k-webdav-resursam/' addthis:title='Подключение к WebDAV-ресурсам' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">В прошлый раз мы с вами <a href="http://www.ashep.org/2011/nastrojka-webdav-pod-apache2/">рассматривали</a> способ настройки <em>WebDAV</em>-ресурса под управлением <em>Apache2</em>. В сегодняшней небольшой заметке я предлагаю вам познакомиться со способами подключения к WebDAV-ресурсам из популярных графических файловых менеджеров <em>Linux</em> и <em>MS Windows</em>.</p>
<img class="size-full wp-image-2189 aligncenter" title="Share" src="http://www.ashep.org/wp-content/uploads/2011/05/share.jpg" alt="" width="267" height="200" /><br />
<span id="more-2188"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<h3 style="text-align: justify;">Nautilus</h3>
<p style="text-align: justify;">Файловый менеджер GNOME имеет встроенную поддержку протокола <em>DAV</em>, поэтому его пользователям ничего доустанавливать не нужно и всё, что нужно сделать&nbsp;&mdash; это в панели адреса ввести URL WebDAV-ресурса, к которому необходимо подключиться. Откройте окно <em>Nautilus</em> и нажмите <em>Ctrl+L</em>, чтобы переключить панель адреса из breadcrumb-режима в режим ввода текста и укажите URL нужного ресурса:</p>
<p><img class="size-full wp-image-2191 aligncenter" title="DAV в Nautilus" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-Nautilus-01.png" alt="" width="371" height="56" /></p>
<p style="text-align: justify;">Укажите имя пользователя и пароль для подключения:</p>
<p><img class="size-full wp-image-2192 aligncenter" title="DAV в Nautilus" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-Nautilus-02.png" alt="" width="316" height="254" /></p>
<p>И получаем доступ к нашему ресурсу:</p>
<p><img class="size-full wp-image-2194 aligncenter" title="DAV в Nautilus" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-Nautilus-03.png" alt="" width="483" height="296" /></p>
<h3>Konqueror</h3>
<p>Пользователи <em>KDE</em> также не обделены возможностью доступа к WebDAV-содержимому. Принцип подключения ничем не отличается от подключения из <em>Nautilus</em>, за исключением того, что в URL ресурса необходимо указывать <em>webdav://</em> в качестве имени протокола, а не <em>dav://</em>, как это имеет место быть в <em>Nautilus</em>.</p>
<p><img class="size-full wp-image-2197 aligncenter" title="DAV в Konqueror" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-Konqueror-01.png" alt="" width="443" height="80" /></p>
<p><img class="size-full wp-image-2198 aligncenter" title="DAV в Konqueror" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-Konqueror-02.png" alt="" width="421" height="276" /></p>
<p><img class="size-full wp-image-2199 aligncenter" title="DAV в Konqueror" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-Konqueror-03.png" alt="" width="600" height="375" /></p>
<h3 style="text-align: justify;">Microsoft Windows XP</h3>
<p style="text-align: justify;">Подключиться к WebDAV-ресурсу в этой ОС также возможно, используя встроенные средства. Прежде, чем подключаться к ресурсу, убедитесь в том, что в вашей системе разрешён запуск службы <em>&laquo;Веб-клиент&raquo;</em> (<em>&laquo;Web-Folders&raquo;</em>):</p>
<p><img class="size-full wp-image-2200 aligncenter" title="DAV в WindowsXP" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-WindowsXP-01.png" alt="" width="405" height="143" /></p>
<p>Далее, необходимо открыть <em>&laquo;Сетевое окружение&raquo;</em> и запустить аплет <em>&laquo;Новое место в сетевом окружении&raquo;</em>:</p>
<p><img class="size-full wp-image-2201 aligncenter" title="DAV в Windows XP" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-WindowsXP-02.png" alt="" width="393" height="250" /></p>
<p><img class="size-full wp-image-2202 aligncenter" title="DAV в Windows XP" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-WindowsXP-03.png" alt="" width="561" height="456" /></p>
<p><img class="size-full wp-image-2203 aligncenter" title="DAV в Windows XP" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-WindowsXP-04.png" alt="" width="561" height="457" /></p>
<p style="text-align: justify;">Указываем URL ресурса (можно использовать HTTPS, если ваш сервер поддерживает его):</p>
<p><img class="size-full wp-image-2204 aligncenter" title="DAV в WindowsXP" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-WindowsXP-05.png" alt="" width="560" height="456" /></p>
<p>Авторизуемся:</p>
<p><img class="size-full wp-image-2205 aligncenter" title="DAV в Windows XP" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-WindowsXP-06.png" alt="" width="322" height="292" /></p>
<p>В следующем окне необходимо указать имя для ярлыка, который будет создан в <em>&laquo;Сетевом окружении&raquo;</em> по окончанию работы мастера:</p>
<p><img class="size-full wp-image-2206 aligncenter" title="DAV в Windows XP" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-WindowsXP-07.png" alt="" width="559" height="456" /></p>
<p><img class="size-full wp-image-2207 aligncenter" title="DAV в Windows XP" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-WindowsXP-08.png" alt="" width="559" height="456" /></p>
<p>Вот и наш ресурс:</p>
<p><img class="size-full wp-image-2208 aligncenter" title="DAV в Windows XP" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-WindowsXP-09.png" alt="" width="431" height="278" /></p>
<p style="text-align: justify;">После того, как вы успешно подключитесь к ресурсу, в <em>&laquo;Сетевом окружении&raquo;</em> будет автоматически создан ярлык, позволяющий в будущем подключаться, не проходя заново описанные выше шаги.</p>
<p><img class="size-full wp-image-2210 aligncenter" title="DAV в Windows XP" src="http://www.ashep.org/wp-content/uploads/2011/05/DAV-WindowsXP-10.png" alt="" width="396" height="338" /></p>
<h3>Windows 7</h3>
<p style="text-align: justify;">К сожалению, на данный момент у меня нет возможности сделать скриншоты из этой ОС, поэтому наглядно процесс подключения WebDAV-ресурса в <em>Microsoft Windows 7</em> я опишу чуть позже в этой же статье, как только появится такая возможность.</p>
<hr />
<p style="text-align: justify;">Ничто не вечно в этом мире, а техника и подавно! Срочный <a href="http://mobi03.ru/remont-telefonov/apple-iphone">ремонт АйФонов в Москве</a>, а также другой разнообразной электроники, включая КПК, мобильные телефоны, игровые приставки, ноутбуки и многое другое для вас с удовольствием и качественно выполнят сотрудники сети сервисных центров mobi03.ru.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/podklyuchenie-k-webdav-resursam/' addthis:title='Подключение к WebDAV-ресурсам' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2011/podklyuchenie-k-webdav-resursam/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Настройка WebDAV под Apache2</title>
		<link>http://www.ashep.org/2011/nastrojka-webdav-pod-apache2/</link>
		<comments>http://www.ashep.org/2011/nastrojka-webdav-pod-apache2/#comments</comments>
		<pubDate>Thu, 12 May 2011 19:52:45 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Сеть]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[WebDAV]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2167</guid>
		<description><![CDATA[WebDAV (Web based Distributed Authoring and Versioning)&#160;&#8212; это способ дать определённым пользователям право на работу в режиме чтение/запись с некоторыми каталогами вашего веб-сервера. Причин для этого может быть масса. Начиная с желания упростить процесс обновления файлов вашего веб-сайта и заканчивая необходимость использовать веб-сервер для хранения вашего календаря или даже для синхронизации закладок вашего браузера. Или [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/nastrojka-webdav-pod-apache2/' addthis:title='Настройка WebDAV под Apache2' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><strong>WebDAV</strong> (<em>Web based Distributed Authoring and Versioning</em>)&nbsp;&mdash; это способ дать определённым пользователям право на работу в режиме чтение/запись с некоторыми каталогами вашего веб-сервера. Причин для этого может быть масса. Начиная с желания упростить процесс обновления файлов вашего веб-сайта и заканчивая необходимость использовать веб-сервер для хранения вашего <a href="http://www.mozilla.org/projects/calendar/sunbird/">календаря</a> или даже для синхронизации <a href="http://wiki.foxmarks.com/wiki/Foxmarks:_Frequently_Asked_Questions#Using_Other_Servers">закладок</a> вашего браузера. Или же вам просто может понадобиться выделить кому-то защищённую область на сервере для хранения файлов и совместной работы с ними.</p>
<p style="text-align: center;"><img class="size-full wp-image-2173 aligncenter" title="Collaborate" src="http://www.ashep.org/wp-content/uploads/2011/05/Collaborate.jpg" alt="" width="240" height="240" /></p>
<span id="more-2167"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p style="text-align: justify;">В сегодняшней заметке мы с вами рассмотрим настройку WebDAV-каталога на сервере <em>www.example.com</em>. Каталог будет доступен по URL <em>http://www.example.com/webdav</em>. В процессе написания заметки в качестве тестовой платформы использовалась <em>Ubuntu Server 10.04.2</em>.</p>
<p style="text-align: justify;">Первым делом необходимо включить дополнительные модули Apache2, нужные для работы WebDAV. А, ну и сам Apache2 установить тоже не помешает, если он у вас ещё не установлен ;)</p>
<pre># apt-get install apache2
# a2enmod dav_fs
# a2enmod dav</pre>
<p style="text-align: justify;">После того, как необходимые модули включены (Apache пока не перезапускаем, рано), создайте виртуальный хост, который будет обслуживать наш WebDAV-каталог. В моём примере конфигурация виртуального хоста располагается в <em>/etc/apache2/sites-available/example.com:</em></p>
<pre>&lt;VirtualHost *:80&gt;
        ServerAdmin webmaster@example.com
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /home/srw/example.com
        &lt;Directory /home/srw/example.com&gt;
                Options Indexes MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        &lt;/Directory&gt;
&lt;/VirtualHost&gt;</pre>
<p>После того, как виртуальный хост создан, создайте каталог для хранения файлов хоста и присвойте ему соответствующие Apache владельца и группу-владельца:</p>
<pre># mkdir /home/srw/example.com
# chown www-data.www-data /home/srw/example.com</pre>
<p style="text-align: justify;">Активируйте виртуальный хост:</p>
<pre># a2ensite example.com</pre>
<p>Проверьте конфигурацию Apache:</p>
<pre># apache2ctl configtest</pre>
<p>И после этого перезагрузите конфигурацию веб-сервера:</p>
<pre># service apache2 reload</pre>
<p style="text-align: justify;">После этого, если всё корректно настроено, вы должны увидеть содержимое каталога <em>/home/srw/example.com</em> по URL <em>http://www.example.com/</em>, открыв его в браузере.</p>
<p style="text-align: justify;">Далее необходимо настроить авторизацию доступа к каталогу WebDAV, если конечно вы не хотите, чтобы он был доступен всем подряд. Для настройки авторизации автор предлагает использовать метод <a href="http://httpd.apache.org/docs/current/mod/mod_auth_digest.html">Digest Authentication</a>, который хотя и может не поддерживаться старыми клиентами, однако предотвратит отправку паролей в открытом виде. Для этого необходимо включить модуль Apache, реализующий данный метод:</p>
<pre style="text-align: justify;"># a2enmod auth_digest</pre>
<p style="text-align: justify;">И создать файл паролей:</p>
<pre># htdigest -c /home/srw/.passwd webdav-example myuser</pre>
<p style="text-align: justify;">Вам будет предложено дважды ввести пароль для нового пользователя <em>myuser</em>.</p>
<p style="text-align: justify;">Почти всё готово, осталось лишь добавить в конфигурацию виртуального хоста <em>/etc/apache2/sites-available/example.com</em> директивы, включающие поддержку WebDAV и авторизации:</p>
<pre>&lt;VirtualHost *:80&gt;
        ServerAdmin webmaster@example.com
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /home/srw/example.com
        &lt;Directory /home/srw/example.com&gt;
                Options Indexes MultiViews
                AllowOverride None
                Order allow,deny
                Allow from All
        &lt;/Directory&gt;
        &lt;Files ".passwd"&gt;
                Order allow,deny
                Deny from All
        &lt;/Files&gt;
        &lt;Location /&gt;
           DAV On
           AuthType Digest
           AuthName "webdav-example"
           AuthDigestProvider file
           AuthUserFile  /home/srw/.passwd
           Require valid-user
       &lt;/Location&gt;
&lt;/VirtualHost&gt;</pre>
<p>Ещё раз проверяем конфигурацию Apache:</p>
<pre># apache2ctl configtest</pre>
<p>И перезагружаем:</p>
<pre># service apache2 reload</pre>
<p style="text-align: justify;">Всё! Теперь у вас есть полноценный WebDAV-ресурс и самое время проверить, как он работает и с чем его едят. Об этом&nbsp;&mdash; в следующей статье.</p>
<p style="text-align: right;">По мотивам <a href="http://www.debian-administration.org/articles/285">debian-administration.org</a></p>
<hr />
<p style="text-align: justify;">Всем поклонникам и просто пользователям мобильных телефонов известной марки посвящается. <a href="http://nokia-x.ru/">Темы для Nokia</a>, картинки, игры, видео, рингтоны и многое-многое другое на сайте Nokia-X.Ru.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/nastrojka-webdav-pod-apache2/' addthis:title='Настройка WebDAV под Apache2' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2011/nastrojka-webdav-pod-apache2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Кэширование в Nginx</title>
		<link>http://www.ashep.org/2011/keshirovanie-v-nginx/</link>
		<comments>http://www.ashep.org/2011/keshirovanie-v-nginx/#comments</comments>
		<pubDate>Sun, 08 May 2011 04:27:50 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Сеть]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2125</guid>
		<description><![CDATA[В статье посвящённой обратному проксированию в Nginx мы с вами не коснулись одной важной темы&#160;&#8212; кэширования отдаваемого upstream-серверами контента. Когда клиент выполняет запрос, например, к PHP-сценарию, его обработкой занимается upstream-сервер. Работа сценария часто связана с вызовом других сценариев, запросам к базам данных, выполнении довольно тяжёлых в плане потребления ресурсов сервера операций. И очень часто вся [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/keshirovanie-v-nginx/' addthis:title='Кэширование в Nginx' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">В <a href="http://www.ashep.org/2011/nginx-obratnyj-proksi-server/">статье</a> посвящённой обратному проксированию в <a href="tag/nginx">Nginx</a> мы с вами не коснулись одной важной темы&nbsp;&mdash; кэширования отдаваемого upstream-серверами контента. Когда клиент выполняет запрос, например, к PHP-сценарию, его обработкой занимается upstream-сервер. Работа сценария часто связана с вызовом других сценариев, запросам к базам данных, выполнении довольно тяжёлых в плане потребления ресурсов сервера операций. И очень часто вся эта &laquo;каша&raquo; заваривается для того, чтобы просто отдать клиенту сформированную страницу; т. е. следующий запрос к этому же сценарию с теми же параметрами запустит ещё один процесс обработки с точно такими же условиями и результатами. А что будет с сервером, когда таких запросов будет несколько десятков в секунду? Несколько сотен? На эти вопросы и на то, как с этим жить, имея в распоряжении Nginx, попытаемся ответить в этой статье.</p>
<p style="text-align: center;"><img class="aligncenter" title="Nginx" src="http://www.ashep.org/wp-content/uploads/2011/03/nginx_logo.gif" alt="" width="320" height="220" /></p>
<span id="more-2125"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p style="text-align: justify;">Следуя уже сложившейся в последнее время в этом блоге традиции, я постараюсь построить заметку в виде небольшого эксперимента, в ходе которого мы с вами будем наблюдать за происходящим. Итак, поехали.</p>
<h3>Исходные данные</h3>
<p style="text-align: justify;">В качестве PHP-сценария для проведения тестов использовался небольшой скрипт, выбирающий все строки из таблицы БД MySQL и выводящий результаты при помощи <em>var_dump ()</em>:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$oPDO</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PDO<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;mysql:server=localhost;dbname=test;&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'user'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'password'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$oQRes</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$oPDO</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT * FROM test1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$oQRes</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fetchAll</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: justify;">Структура таблицы <em>test1</em> БД следующая:</p>
<pre>+-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| id    | int(11) | NO   | PRI | NULL    | auto_increment |
| name  | text    | YES  |     | NULL    |                |
+-------+---------+------+-----+---------+----------------+</pre>
<p style="text-align: justify;">Таблица содержит 10000 записей, где в каждом поле <em>name</em> записан MD5-хеш случайного числа в диапазоне от 0 до <em>time ()</em>. URL сценария, работающего под Apache&nbsp;&mdash; <em>http://test.ashep:80/test.php</em>. Давайте посмотрим при помощи <a href="http://www.ashep.org/2011/nagruzochnoe-testirovanie-web-servera-pri-pomoshhi-siege/">siege</a> как сервер будет обрабатывать запросы к этому сценарию.</p>
<h3 style="text-align: justify;">Прямые запросы к Apache</h3>
<p style="text-align: justify;">Эмулируем 10 серий по 10 одновременных запросов:</p>
<pre>$ siege -c 10 -r 10 http://test.ashep:80/test.php
Transactions:		         100 hits
Availability:		      100.00 %
Elapsed time:		      109.66 secs
Data transferred:	       32.65 MB
Response time:		       10.30 secs
Transaction rate:	        0.91 trans/sec
Throughput:		        0.30 MB/sec
Concurrency:		        9.39
Successful transactions:         100
Failed transactions:	           0
Longest transaction:	       12.76
Shortest transaction:	        3.66</pre>
<p style="text-align: justify;">Сервер успешно обработал все запросы, однако время на обработку каждого составило в среднем 10,3 секунд.</p>
<h3>Проксирование через Nginx</h3>
<p>Теперь создадим реверс-прокси сервер в Nginx так, как мы это делали в предыдущей статье, в качестве upstream-сервера будем использовать наш Apache по <em>http://test.ashep:80</em>.</p>
<pre>server {
    listen 8080;
    server_name test.ashep;
    access_log /var/log/nginx/test.access_log;
    error_log /var/log/nginx/test.error_log;
    location / {
        proxy_pass http://test.ashep:80;
    }
}</pre>
<p style="text-align: justify;">Повторим тест, на этот раз уже через Nginx:</p>
<pre>$ siege -c 10 -r 10 http://test.ashep:8080/test.php
Transactions:		         100 hits
Availability:		      100.00 %
Elapsed time:		      104.97 secs
Data transferred:	       32.65 MB
Response time:		        9.77 secs
Transaction rate:	        0.95 trans/sec
Throughput:		        0.31 MB/sec
Concurrency:		        9.31
Successful transactions:         100
Failed transactions:	           0
Longest transaction:	       14.54
Shortest transaction:	        2.89</pre>
<p style="text-align: justify;">Результаты примерно те же. Логично, поскольку Nginx всего лишь транслирует запросы к upstream-серверу, ничего при этом не кэшируя.</p>
<h3>Кэширующее проксирование через Nginx</h3>
<p style="text-align: justify;">И теперь самое интересное. Прежде, чем можно будет оперировать кэшированием в настройках серверов Nginx, сперва нужно определить место для хранения и параметры кэша Nginx. Кэшей в Nginx можно определить больше одного, каждый с нужными вам параметрами и затем использовать их в зависимости от ситуации в том или ином месте конфигурации сервера.</p>
<p style="text-align: justify;">Определять кэш можно лишь в контексте секции <em>http</em>, которая, например, в моём <em>Debian</em> описана в <em>/etc/nginx/nginx.conf</em>. Для определения кэша используется опция proxy_cache_path, которая имеет следующий формат:</p>
<pre>proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time] [max_size=size];</pre>
<p style="text-align: justify;">В квадратных скобках приведены необязательные параметры. Теперь обо всём по порядку:</p>
<ul>
<li><em>path</em> определяет место в файловой системе, где будет храниться кэш. Кэш в Nginx хранится в виде обычных файлов, каждый из которых хранит содержимое ответа на какой-то запрос. URL запроса хешируется в MD5 и полученная строка используется в качестве имени файла кэша, а также ключа, по которому Nginx будет отыскивать нужный фрагмент кэша;</li>
<li>при помощи <em>levels</em> можно определить количество уровней вложенности каталогов с файлами кэша. Формат описания уровней может быть одним из: &#39;X&#39;, &#39;X:X&#39; или &#39;X:X:X&#39;, что соответственно определяет один, два или три уровня вложенности каталогов. Каждая &#39;X&#39; является единицей или двойкой и определяет количество символов в имени каталога соответствующего уровня;</li>
<li>значением параметра <em>keys_zone</em> определяется имя кэша (<em>zone_name</em>), на которое можно ссылаться из других участков конфигурации сервера, а также её размер (<em>zone_size</em>);</li>
<li>при помощи необязательного параметра <em>inactive</em> определяется время жизни объектов кэша, если к ним не было запросов. Т. е. если в течение указанного периода времени объект кэша ни разу не запрашивался&nbsp;&mdash; он подлежит удалению. Значение параметра <em>inactive</em> по умолчанию равно 10 минутам (<em>10m</em>);</li>
<li>значение необязательного параметра max_size определяет размер кэша, больше которого ему не будет позволено &laquo;раздуваться&raquo;.</li>
</ul>
<p style="text-align: justify;">В ходе моих экспериментов, рассматриваемых в этой заметке, я использовал следующее значение опции <em>proxy_cache</em>:</p>
<pre>proxy_cache_path /var/cache/nginx levels=2:2 keys_zone=default:100m;</pre>
<p style="text-align: justify;">Приведённой выше строкой создаётся двухуровневый кэш в каталоге /var/cache/nginx с именем &#39;default&#39; и размером 100 мегабайт. Теперь определённый кэш default можно использовать в конфигурации серверов Nginx. Слегка дополненная конфигурация сервера, приводившаяся выше:</p>
<pre>server {
    listen 8080;
    server_name test.ashep;
    access_log /var/log/nginx/test.access_log;
    error_log /var/log/nginx/test.error_log;
    location / {
        proxy_pass http://test.ashep:80;
        proxy_cache default;
        proxy_cache_valid   200 302 10m;
        proxy_cache_valid   404 1m;
    }
}</pre>
<p style="text-align: justify;">Обратите внимание на две новых опции. При помощи параметра <em>proxy_cache</em> мы указываем Nginx какой кэш необходимо использовать при кэшировании данных от upstream-сервера, в данном случае&nbsp;&mdash; это <em>&#39;default&#39;</em>, определённый ранее в <em>/etc/nginx/nginx.conf</em>. Опция <em>proxy_cache_valid</em> определяет время в течение которого не устаревшими будут считаться объекты кэша, полученные полученные в результате ответов upstream-сервера. Формат опции следующий:</p>
<pre style="text-align: justify;">proxy_cache_valid код_ответа [код_ответа код_ответа ...] время</pre>
<p>Таким образом ответы upstream-сервера с кодами 200 и 302 будут кэшироваться на 10 минут, а ошибки 404&nbsp;&mdash; в течение одной минуты.</p>
<p>Сохранив конфиг-файлы и перезапустив Nginx, попробуем провести нагрузочное тестирование с включённым кэшированием:</p>
<pre>$ siege -c 10 -r 10 http://test.ashep:8080/test.php
Transactions:		         100 hits
Availability:		      100.00 %
Elapsed time:		       15.68 secs
Data transferred:	       32.65 MB
Response time:		        0.73 secs
Transaction rate:	        6.38 trans/sec
Throughput:		        2.08 MB/sec
Concurrency:		        4.65
Successful transactions:         100
Failed transactions:	           0
Longest transaction:	        9.51
Shortest transaction:	        0.02</pre>
<p style="text-align: justify;">Среднее время ответа от сервера составило 0,73 секунды. Неплохо, правда? ;)</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/keshirovanie-v-nginx/' addthis:title='Кэширование в Nginx' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2011/keshirovanie-v-nginx/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Нагрузочное тестирование web-сервера при помощи siege</title>
		<link>http://www.ashep.org/2011/nagruzochnoe-testirovanie-web-servera-pri-pomoshhi-siege/</link>
		<comments>http://www.ashep.org/2011/nagruzochnoe-testirovanie-web-servera-pri-pomoshhi-siege/#comments</comments>
		<pubDate>Sat, 07 May 2011 11:07:34 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Сеть]]></category>
		<category><![CDATA[Система]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[siege]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2113</guid>
		<description><![CDATA[Продолжая тему нагрузочного тестирования web-серверов, сегодня рассмотрим ещё один инструмент с именем siege. За наводку спасибо читателю Dmitry Paskal. Siege умеет выполнять многопоточное нагрузочное тестирование web-серверов по протоколу HTTP (S)/1.0/1.1 методами GET и POST. Утилита симулирует параллельные запросы к веб-серверу на протяжении заданного времени и в конце теста вычисляет следующие показатели: количество совершённых транзакций в [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/nagruzochnoe-testirovanie-web-servera-pri-pomoshhi-siege/' addthis:title='Нагрузочное тестирование web-сервера при помощи siege' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Продолжая <a href="http://www.ashep.org/2011/nagruzochnoe-testirovanie-web-servera/">тему</a> нагрузочного тестирования web-серверов, сегодня рассмотрим ещё один инструмент с именем <strong>siege</strong>. За наводку спасибо читателю <a rel="nofollow" href="http://realmfpa.ru">Dmitry Paskal</a>.</p>
<p style="text-align: center;"><img class="size-full wp-image-2114 aligncenter" title="Stress Test" src="http://www.ashep.org/wp-content/uploads/2011/05/piggy-bank.jpg" alt="" width="301" height="200" /></p>
<span id="more-2113"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p style="text-align: justify;"><em>Siege</em> умеет выполнять многопоточное нагрузочное тестирование web-серверов по протоколу <em>HTTP (S)/1.0/1.1</em> методами <em>GET</em> и <em>POST</em>. Утилита симулирует параллельные запросы к веб-серверу на протяжении заданного времени и в конце теста вычисляет следующие показатели:</p>
<ul>
<li>количество совершённых транзакций в процессе тестирования;</li>
<li>среднее количество транзакций в секунду;</li>
<li>длительность самой долгой и самой быстрой транзакций;</li>
<li>количество и процентное соотношение успешных/неудачных транзакций;</li>
<li>среднее время, потребовавшееся серверу для ответа;</li>
<li>объём переданных данных и скорость обмена данными с сервером;</li>
<li>среднее количество транзакций, которые сервер смог обрабатывать одновременно.</li>
</ul>
<p style="text-align: justify;">Запросы к серверу утилита может выполнять как к одному и тому же URL, так к разным на основе списка. Паузы между запросами к серверу могут быть как произвольными в пределах заданного интервала, так и вовсе отсутствовать, позволяя таким образом выполнять тест производительности сервера.</p>
<p style="text-align: justify;"><em>Siege </em>присутствует в репозиториях всех популярных дистрибутивов, так что вы должны без труда установить её в своей системе. Если же ваш дистрибутив не располагает утилитой в среди включённых в комплект пакетов, вы можете самостоятельно собрать <em>siege</em> из исходных кодов, полученных со <a href="http://freshmeat.net/projects/siege/">страницы проекта на freshmeat.net</a>.</p>
<p style="text-align: justify;">Условия тестирования, приводимого в этой заметке, те же самые, что и в <a href="http://www.ashep.org/2011/nagruzochnoe-testirovanie-web-servera/">предыдущей</a>. Следуя схеме тестирования, определённой в предыдущей статье, для начала выполним 1000 последовательных запросов статического HTML-файла:</p>
<pre>$ siege -b -c 1 -r 1000 http://aserver.ashep:80/test.html</pre>
<p style="text-align: justify;">Здесь:</p>
<ul>
<li>опция <em>&#39;-b&#39;</em> переключает утилиту в режим тестирования производительности, т. е. <em>siege</em> не будет делать паузу случайной длительности между запросами;</li>
<li>опция <em>&#39;-c&#39;</em> определяет количество параллельных запросов, отправляемых за один раз. В нашем случае&nbsp;&mdash; один;</li>
<li>при помощи опции <em>&#39;-r&#39;</em> определяется количество повторов запроса.</li>
</ul>
<p style="text-align: justify;">После выполнения тестирования утилита выведет результаты:</p>
<pre>Transactions:		        1000 hits
Availability:		      100.00 %
Elapsed time:		       10.97 secs
Data transferred:	        8.95 MB
Response time:		        0.01 secs
Transaction rate:	       91.16 trans/sec
Throughput:		        0.82 MB/sec
Concurrency:		        1.00
Successful transactions:        1000
Failed transactions:	           0
Longest transaction:	        0.03
Shortest transaction:	        0.00</pre>
<p style="text-align: justify;">Из результатов теста видно, что:</p>
<ul>
<li>общее количество транзакций составило 1000;</li>
<li>&laquo;доступность&raquo; (т. е. процент успешных сокет-подключений ) сервера составила 100%;</li>
<li>тест занял 10,97 секунд;</li>
<li>было передано 8,95 мегабайт данных;</li>
<li>среднее время, потребовавшееся серверу для ответа составил 0,01 секунды;</li>
<li>в среднем за одну секунду удалось выполнять 91,16 транзакций;</li>
<li>средняя скорость обмена данными с сервером составила 0,82 мегабайта в секунду;</li>
<li>параллельно сервер обрабатывал один запрос;</li>
<li>было успешно (HTTP-код ответа сервера &lt;400) обработано 1000 транзакций;</li>
<li>не удалось обработать (HTTP-код ответа сервера &gt;=400) обработано 0 транзакций;</li>
<li>длительность самой длинной по времени транзакции составила 0,03 секунды;</li>
<li>длительность самой длинной по времени транзакции составила 0,00 секунд.</li>
</ul>
<p>Попробуем теперь выполнить запрос того же URL 1000 раз, только теперь одновременно будем отправлять по 200 запросов за раз:</p>
<pre>$ siege -b -c 200 -r 5 http://aserver.ashep:80/test.html</pre>
<pre>Transactions:		        1000 hits
Availability:		      100.00 %
Elapsed time:		       12.69 secs
Data transferred:	        8.95 MB
Response time:		        1.70 secs
Transaction rate:	       78.80 trans/sec
Throughput:		        0.71 MB/sec
Concurrency:		      134.16
Successful transactions:        1000
Failed transactions:	           0
Longest transaction:	       10.26
Shortest transaction:	        0.01</pre>
<p style="text-align: justify;">В результатах этого теста видим значительно возросшее время, требуемое серверу для ответа&nbsp;&mdash; 1,7 секунды против 0,01 в предыдущем тесте. При этом на 12 снизилось количество транзакций обрабатываемых за одну секунду. Из генерируемых двухсот одновременных запросов сервер в среднем смог обрабатывать лишь 134,16. Но при всём этом доступность сервера составила 100%, т. е. сервер не был загружен настолько, что был не в состоянии принимать входящие сетевые соединения.</p>
<p style="text-align: justify;">Попробуем выполнить тот же тест, только исключив опцию <em>&#39;-b&#39;</em>, что приведёт к снижению нагрузки на сервер за счёт произвольных пауз между транзакциями, что больше приближено к реальному поведению клиентов вашего сервера:</p>
<pre>$ siege -c 200 -r 5 http://aserver.ashep:80/test.html</pre>
<pre>Transactions:		        1000 hits
Availability:		      100.00 %
Elapsed time:		       12.29 secs
Data transferred:	        8.95 MB
Response time:		        1.52 secs
Transaction rate:	       81.37 trans/sec
Throughput:		        0.73 MB/sec
Concurrency:		      124.05
Successful transactions:        1000
Failed transactions:	           0
Longest transaction:	        9.32
Shortest transaction:	        0.01</pre>
<p style="text-align: justify;">Как видно, некоторые показатели несколько  улучшились, за счёт ухудшения показателя <em>Concurrency</em>, что логично. При необходимости вы можете увеличить диапазон случайно временной задержки между отправкой запросов при помощи опции <em>&#39;-d&#39;</em>. Например, чтобы siege выдерживал случайную паузу между запросами в пределах между 0 и 5 секундами:</p>
<pre>$ siege -d 5 -c 200 -r 5 http://aserver.ashep:80/test.html</pre>
<p style="text-align: justify;">Если вам необходимо, чтобы <em>siege</em> &laquo;побродил&raquo; по вашему серверу вместо того, чтобы тупо долбиться на один и тот-же URL, создайте текстовый файл со списком URL, которые необходимо посетить в процессе тестирования и укажите путь к нему при помощи опции <em>&#39;-f&#39;</em>:</p>
<pre>$ siege -d 5 -c 200 -r 5 -f ~/urls.txt</pre>
<p style="text-align: justify;">Чтобы заставить утилиту брать URL из файла не последовательно, а случайно, добавьте опцию <em>&#39;-i&#39;</em>:</p>
<pre>$ siege -d 5 -c 200 -r 5 -i -f ~/urls.txt</pre>
<p style="text-align: justify;">При необходимости вы можете ограничить время, которое будет отведено <em>siege</em> для выполнения теста, при помощи опции <em>&#39;-t&#39;</em>. Обратите внимание, что эта опция имеет приоритет перед опцией <em>&#39;-r&#39;</em>. При указании значения опции <em>&#39;-t&#39;</em> можно использовать суффиксы <em>&#39;s&#39;, &#39;m&#39;</em> и <em>&#39;h&#39;</em> для определения времени в секундах, минутах и часах соответственно. Например:</p>
<pre>$ siege -d 5 -c 200 -t 10s http://aserver.ashep:80/test.html</pre>
<p style="text-align: justify;">
<p style="text-align: justify;">
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/nagruzochnoe-testirovanie-web-servera-pri-pomoshhi-siege/' addthis:title='Нагрузочное тестирование web-сервера при помощи siege' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2011/nagruzochnoe-testirovanie-web-servera-pri-pomoshhi-siege/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Нагрузочное тестирование web-сервера при помощи ab</title>
		<link>http://www.ashep.org/2011/nagruzochnoe-testirovanie-web-servera/</link>
		<comments>http://www.ashep.org/2011/nagruzochnoe-testirovanie-web-servera/#comments</comments>
		<pubDate>Mon, 02 May 2011 22:17:03 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Сеть]]></category>
		<category><![CDATA[Система]]></category>
		<category><![CDATA[ab]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[HTTP]]></category>
		<category><![CDATA[HTTPS]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2094</guid>
		<description><![CDATA[Пока ваш веб-сервер работает стабильно и стабильно отдаёт посетителям запрошенный контент&#160;&#8212; всё в порядке. Но задавали ли вы себе вопрос: а что будет, если нагрузка на сервер возрастёт? Что, если количество запросов на единицу времени увеличится вдвое? Втрое? В десять раз? Как узнать ответ на это злободневное &#171;а что если?&#187;. В сегодняшней заметке мы рассмотрим [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/nagruzochnoe-testirovanie-web-servera/' addthis:title='Нагрузочное тестирование web-сервера при помощи ab' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Пока ваш веб-сервер работает стабильно и стабильно отдаёт посетителям запрошенный контент&nbsp;&mdash; всё в порядке. Но задавали ли вы себе вопрос: а что будет, если нагрузка на сервер возрастёт? Что, если количество запросов на единицу времени увеличится вдвое? Втрое? В десять раз? Как узнать ответ на это злободневное &laquo;а что если?&raquo;. В сегодняшней заметке мы рассмотрим основы нагрузочного тестирования веб-серверов при помощи утилиты <strong>ab</strong>&nbsp;&mdash; <em>Apache HTTP server benchmarking tool</em>, инструмента, который позволит вам определить максимально возможное количество одновременных запросов, которые сможет обработать ваша инсталляция веб-сервера.</p>
<p style="text-align: center;"><img class="size-full wp-image-2099 aligncenter" title="Apache Logo" src="http://www.ashep.org/wp-content/uploads/2011/05/apache_logo.png" alt="" width="150" height="149" /></p>
<span id="more-2094"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<h3 style="text-align: justify;">Приготовления</h3>
<p style="text-align: justify;">Утилита <a href="http://httpd.apache.org/docs/2.0/programs/ab.html">ab</a> поставляется в комплекте с <em>Apache</em>, так что если он у вас установлен&nbsp;&mdash; у вас есть уже всё необходимое. В сегодняшней заметке мы будем упражняться на установленном в конфигурации по умолчанию <em>Apache 2.2.14</em> в <em>Ubuntu Server 10.04.2 LTS</em>. Конфигурацию оборудования (кому интересно&nbsp;&mdash; оно довольно слабенькое) и настроек Apache приводить не буду, ибо нет смысла в рамках данной статьи. Целью данной заметки является небольшой обзор утилиты <em>ab</em>, а не анализ производительности конкретного ПО на конкретном железе. В рамках примера произведём тест отдачи сервером:</p>
<ul>
<li>HTML-файла <em>test.html</em> размером 177 байт;</li>
<li>небольшого PHP-сценария <em>test.php</em>, код которого приведён ниже.</li>
</ul>
<p style="text-align: justify;">Все файлы размещены в корне <em>DocumentRoot</em> сервера. Код PHP-сценария использовался такой:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">phpinfo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p style="text-align: justify;">Чтобы снизить влияние фактора сетевых задержек, для выполнения тестов используйте систему, пропускная способность сетевого канала от которой до тестируемого сервера является максимально высокой.</p>
<h3 style="text-align: justify;">Запрос html-файла</h3>
<p style="text-align: justify;">Итак, начнём. Для начала давайте организуем нагрузку нашему серверу в одну тысячу последовательных запросов. Для указания числа запросов используется опция <em>&#39;-n&#39;</em>. Номер порта можно не указывать, если он не отличен от 80-го:</p>
<pre>$ ab -n 1000 http://aserver.ashep:80/test.html</pre>
<p style="text-align: justify;">Итак, что у нас получилось (вывод привожу не полностью, опуская несущественные пока моменты). В процессе тестирования утилита будет сообщать вам о ходе работы:</p>
<pre>Benchmarking aserver.ashep (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests</pre>
<p style="text-align: justify;">Далее вы увидите информацию о версии ПО сервера, его имени, какой документ загружался и каков его размер:</p>
<pre>Server Software:        Apache/2.2.14
Server Hostname:        aserver.ashep
Server Port:            80
Document Path:          /test.html
Document Length:        177 bytes</pre>
<p style="text-align: justify;">И далее, собственно, результаты:</p>
<pre>Concurrency Level:      1
Time taken for tests:   1.500 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      453000 bytes
HTML transferred:       177000 bytes
Requests per second:    666.58 [#/sec] (mean)
Time per request:       1.500 [ms] (mean)
Time per request:       1.500 [ms] (mean, across all concurrent requests)
Transfer rate:          294.88 [Kbytes/sec] received</pre>
<p style="text-align: justify;">Как видно:</p>
<ul>
<li><em>Concurrency Level:</em> количество одновременно-отправляемых запросов&nbsp;&mdash; 1;</li>
<li><em>Time taken for tests:</em> тысяча запросов к серверу заняла 1,5 секунды;</li>
<li><em>Complete requests:</em> успешно получен ответ на всю тысячу запросов;</li>
<li><em>Failed requests:</em> неудавшихся запросов&nbsp;&mdash; ноль;</li>
<li><em>Write errors:</em> ошибок записи&nbsp;&mdash; ноль;</li>
<li><em>Total transferred</em>: общий объём переданных данных: 453000 байт;</li>
<li><em>HTML transferred</em>: из них &laquo;полезного&raquo; HTML&nbsp;&mdash; 177000 байт;</li>
<li><em>Requests per second</em>: среднее количество запросов в секунду составило 666.58</li>
<li><em>Time per request</em>: среднее время на один запрос 1,5 миллисекунды</li>
<li><em>Transfer rate</em>: скорость обмена данными с сервером составила 294.88 килобайта в секунду.</li>
</ul>
<p>Далее в выводе идёт информация о времени, затраченном на сетевые подключения:</p>
<pre>Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       2
Processing:     1    1   0.7      1      13
Waiting:        1    1   0.5      1       8
Total:          1    1   0.7      1      14</pre>
<p style="text-align: justify;">И на обслуживание запросов сервером:</p>
<pre>Percentage of the requests served within a certain time (ms)
  50%      1
  66%      1
  75%      1
  80%      1
  90%      2
  95%      3
  98%      4
  99%      5
 100%     14 (longest request)</pre>
<p style="text-align: justify;">Как видим, сервер успешно справился с тысячей последовательных загрузок статического файла небольшого размера. Давайте теперь посмотрим, как сервер поведёт себя, если вся эта тысяча запросов будет направлена к нему <em>одновременно</em>, указав это при помощи опции <em>&#39;-c&#39;</em>:</p>
<pre>$ ab -n 1000 -c 1000 http://aserver.ashep:80/test.html
Benchmarking aserver.ashep (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
apr_socket_recv: Connection reset by peer (104)
Total of 804 requests completed</pre>
<p style="text-align: justify;">Здесь тест не смог быть завершён по причине того, что после одновременной отправки 804 запросов сервер перестал принимать входящие соединения. Опытным путём, снижая количество одновременных запросов, было установлено что безболезненно мой Apache в текущей конфигурации может обрабатывать  примерно 300 одновременных <em>не Keep-Alive</em> запросов.</p>
<pre>$ ab -n 1000 -c 300 http://aserver.ashep:80/test.html

Server Software:        Apache/2.2.14
Server Hostname:        aserver.ashep
Server Port:            80

Document Path:          /test.html
Document Length:        55716 bytes

Concurrency Level:      300
Time taken for tests:   13.658 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      55998000 bytes
HTML transferred:       55716000 bytes
Requests per second:    73.22 [#/sec] (mean)
Time per request:       4097.409 [ms] (mean)
Time per request:       13.658 [ms] (mean, across all concurrent requests)
Transfer rate:          4003.91 [Kbytes/sec] received

Connection Times (ms)
 min  mean[+/-sd] median   max
Connect:        0   17 190.0      6    3015
Processing:   224 1659 2376.3    644   13644
Waiting:      212 1628 2360.6    621   13636
Total:        230 1677 2379.8    648   13650
Percentage of the requests served within a certain time (ms)
 50%    648
 66%    654
 75%    668
 80%    785
 90%   7003
 95%   7243
 98%   7384
 99%   7425
 100%  13650 (longest request)</pre>
<p style="text-align: justify;">Естественно, с Keep-Alive запросами дело будет обстоять ещё хуже, поскольку занимаемые Apache&#39;м ресурсы сервера освобождаются не так быстро. Для выполнения теста с Keep-Alive-соединениями просто добавьте опцию <em>&#39;-k&#39;</em>:</p>
<pre>$ ab -k -n 1000 -c 1000 http://aserver.ashep:80/test.html</pre>
<h3>Запрос PHP-сценария</h3>
<p style="text-align: justify;">С работой скриптов дело, естественно обстоит иначе. Здесь уже серверу нужно не просто отдать вам файл, а запустить интерпретатор, дождаться от него вывода и вернуть вывод клиенту. Ну и, конечно, работа интерпретатора займёт определённое число ресурсов системы, что также отразится на производительности сервера в целом.</p>
<p style="text-align: justify;">Попробуем запросить наш простенький скрипт тысячу раз, делая 300 запросов одновременно:</p>
<pre>$ ab -n 1000 -c 300 http://aserver.ashep:80/test.php

Server Software:        Apache/2.2.14
Server Hostname:        aserver.ashep
Server Port:            80

Document Path:          /test.php
Document Length:        55469 bytes

Concurrency Level:      300
Time taken for tests:   44.110 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      55660000 bytes
HTML transferred:       55469000 bytes
Requests per second:    22.67 [#/sec] (mean)
Time per request:       13232.931 [ms] (mean)
Time per request:       44.110 [ms] (mean, across all concurrent requests)
Transfer rate:          1232.28 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0  198 934.7      0    9021
Processing:   295 5910 9113.3   2457   44098
Waiting:      227 5711 9149.6   2273   44039
Total:        301 6108 9102.0   2470   44106
Percentage of the requests served within a certain time (ms)
  50%   2470
  66%   2983
  75%   4412
  80%   5575
  90%  14254
  95%  32750
  98%  33302
  99%  33589
 100%  44106 (longest request)</pre>
<p style="text-align: justify;">Как видим, сервер успешно справился с запросами, однако время их обработки существенно возросло, составив в среднем 44 миллисекунды на запрос, в то время как отдача небольшого HTML-файла примерно такого же размера составляла всего лишь 13 миллисекунд.</p>
<hr />
<p>Устали настраивать сервера? Самое время приятно провести время! Большая коллекция <a href="http://proiphone.com.ua/games/">игр для iPhone</a> и iPad на proiphone.com.ua не заставят вас скучать!</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/nagruzochnoe-testirovanie-web-servera/' addthis:title='Нагрузочное тестирование web-сервера при помощи ab' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2011/nagruzochnoe-testirovanie-web-servera/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Nginx. Балансировка нагрузки</title>
		<link>http://www.ashep.org/2011/nginx-balansirovka-nagruzki/</link>
		<comments>http://www.ashep.org/2011/nginx-balansirovka-nagruzki/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 15:33:26 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Сеть]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2084</guid>
		<description><![CDATA[В предыдущей статье об обратном проксировании с помощью Nginx мы рассмотрели методику настройки сервера для перенаправления запросов к разным серверам. Развивая эту тему дальше, сегодня рассмотрим каким образом при помощи Nginx можно балансировать нагрузку между несколькими upstream-серверами, равномерно (или не очень) распределяя входящие запросы между ними. Балансировка нагрузки может быть полезной в случаях, когда ваш [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/nginx-balansirovka-nagruzki/' addthis:title='Nginx. Балансировка нагрузки' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">В <a href="http://www.ashep.org/2011/nginx-obratnyj-proksi-server/">предыдущей статье об обратном проксировании</a> с помощью <em>Nginx</em> мы рассмотрели методику настройки сервера для перенаправления запросов к разным серверам. Развивая эту тему дальше, сегодня рассмотрим каким образом при помощи Nginx можно балансировать нагрузку между несколькими upstream-серверами, равномерно (или не очень) распределяя входящие запросы между ними.</p>
<p style="text-align: center;"><img class="aligncenter" title="Nginx" src="http://www.ashep.org/wp-content/uploads/2011/03/nginx_logo.gif" alt="" width="320" height="220" /></p>
<span id="more-2084"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p style="text-align: justify;">Балансировка нагрузки может быть полезной в случаях, когда ваш один-единственный сервер уже не справляется с возложенными на него задачами в силу возросшего количества запросов. В Nginx роль балансировщика реализует модуль HttpUpstreamModule, обычно по умолчанию содержащийся  в сборке Nginx. Тем, кто не читал <a href="../2011/nginx-obratnyj-proksi-server/tag/nginx">предыдущих</a> моих статей об Nginx и тем, что забыл, напоминаю о том, что все  действия, описываемые в этой серии статей, тестировались и выполнялись  на <em>Debian 5 «Lenny»</em> и в незначительной степени могут отличаться от требуемых в вашей системе.</p>
<h3 style="text-align: justify;">Простая конфигурация</h3>
<p style="text-align: justify;">Допустим, вы разместили ваше приложение на нескольких серверах, пусть это будут три сервера с именами <em>myserv-1.local</em>, <em>myserv-2.local</em> и <em>myserv-3.local</em>, расположенные в вашей локальной сети (конечно же, на самом деле без разницы, где они будут размещаться). Для того, чтобы описать такое &laquo;облако&raquo; из  трёх серверов в Nginx используется опция <em>upstream</em>:</p>
<pre>upstream mySuperCloud {
  server myserv-1.local;
  server myserv-2.local;
  server myserv-3.local;
}</pre>
<p style="text-align: justify;">Описанное таким образом &laquo;облако&raquo; из нескольких upstream-серверов теперь можно использовать в качестве значения параметра <a href="http://www.ashep.org/2011/nginx-obratnyj-proksi-server/"><em>proxy_pass</em></a>, рассмотренного в предыдущей статье. Везде, где Nginx будет наталкиваться на ссылку (в нашем случае&nbsp;&mdash; <em>&laquo;mySuperCloud&raquo;</em>), он будет по алгоритму <a href="http://ru.wikipedia.org/wiki/Round-robin_%28%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%29">Round-Robin </a>выбирать следующий сервер и выполнять обратное проксирование к нему и от него. Таким образом, теперь, описывая виртуальный хост, вы можете сослаться на ваше &laquo;облако&raquo;:</p>
<pre>server {
  listen 192.168.0.1:80;
  access_log /var/log/nginx/proxy.log;
  location / {
    proxy_pass http://mycloud;
  }
}</pre>
<h3 style="text-align: justify;">Привязка клиента к серверу</h3>
<p style="text-align: justify;">Часто бывает нужно, чтобы один и тот же клиент, начав делать запросы к какому-то определённому серверу, не переключался на другие. Для этого в Nginx предусмотрена опция <em>ip_hash</em>. Если она определена, сервер будет запоминать IP-хеши клиентов и стараться проксировать каждого из них на один и тот же сервер.</p>
<pre>upstream mySuperCloud {
  ip_hash;
  server myserv-1.local;
  server myserv-2.local;
  server myserv-3.local;
}</pre>
<h3 style="text-align: justify;">Исключение сервера из &laquo;облака&raquo;</h3>
<p style="text-align: justify;">Если какой-то сервер по каким-то причинам вам необходимо отключить, чтобы Nginx не проксировал к нему клиентов, воспользуйетсь опцией down:</p>
<pre>upstream mySuperCloud {
  server myserv-1.local;
  server myserv-2.local down;
  server myserv-3.local;
}</pre>
<h3 style="text-align: justify;">Определение &laquo;веса&raquo; сервера</h3>
<p style="text-align: justify;">&laquo;Вес&raquo; сервера, грубо говоря, определяет насколько часто сервер будет использоваться. Например, вес сервера <em>myserv-1.local</em> равен 3, вес <em>myserv-2.local</em> равен 1 и вес <em>myserv-3.local</em> равен 2. В этом случае Nginx проксирует первых трёх клиентов к серверу <em>myserv-1.local</em>, четвёртого&nbsp;&mdash; к <em>myserv-2.local</em>, а пятого и шестого&nbsp;&mdash; к <em>myserv-2.local</em>, после чего круг начнётся сначала. Для определения веса сервера используется директива weight, значение по умолчанию которой равно единице.</p>
<pre>upstream mySuperCloud {
  server myserv-1.local weight=3;
  server myserv-2.local;
  server myserv-3.local weight=2;
}</pre>
<h3 style="text-align: justify;">Автоотключение серверов</h3>
<p style="text-align: justify;">Если какой-то из upstream-серверов перестанет отвечать на запросы, то подключение к нему станет невозможным. Nginx в этом случае переключиться на использование следующего сервера из &laquo;облака&raquo;, однако каждый раз будет пытаться подключаться к неработающему серверу, растрачивая время. При помощи директивы <em>max_fails</em> параметра <em>server </em>можно определить максимально-допустимое количество неудачных попыток подключения к upstream-серверу, после чего тот будет считаться нерабочим и запросы к нему прекратятся. По умолчанию значение этого параметра равно единице, то есть после одной неудачной попытки Nginx на определённое время прекратит попытки новых подключений с нерабочему серверу. Это &laquo;определённое время&raquo; определяется значением опции <em>fail_timeout</em>, по умолчанию равным 10 секундам.</p>
<pre>upstream mySuperCloud {
  server myserv-1.local max_fails=3 fail_timeout=120;
  server myserv-2.local;
  server myserv-3.local;
}</pre>
<h3 style="text-align: justify;">Резервные серверы</h3>
<p style="text-align: justify;">Под понятием &laquo;резервный&raquo; в Nginx выступает сервер, который используется тогда, и только тогда, когда все &laquo;не резервные&raquo; upstream-серверы определены как нерабочие, т. е. не отвечающие на запросы. Резервные серверы отмечаются с помощью директивы <em>backup</em>:</p>
<pre>upstream mySuperCloud {
  server myserv-1.local;
  server myserv-2.local;
  server myserv-3.local;
  server backup-server-1.local backup;
  server backup-server-2.local backup;
}</pre>
<hr />
<p style="text-align: justify;">Современные <a href="http://mirsvetodiodov.ru/">светодиодные лампы</a> помогут вам не только придать уникальности интерьеру, но и сберечь природные ресурсы и ваши деньги, благодаря высокой надёжности и большому сроку службы.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/nginx-balansirovka-nagruzki/' addthis:title='Nginx. Балансировка нагрузки' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2011/nginx-balansirovka-nagruzki/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nginx. Обратный прокси-сервер</title>
		<link>http://www.ashep.org/2011/nginx-obratnyj-proksi-server/</link>
		<comments>http://www.ashep.org/2011/nginx-obratnyj-proksi-server/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 13:51:02 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Сеть]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2078</guid>
		<description><![CDATA[Под обратным проксированием обычно понимается процесс, в котором сервер, получающий запрос от клиента не обрабатывает его полностью самостоятельно, а частично или целиком отправляет этот запрос для обработки другим (upstream) серверам. То есть, не перенаправляет клиента, а самостоятельно отправляет запрос и возвращает полученный ответ обратно клиенту. Что это даёт? Используя обратное проксирование вы можете: скрыть инфраструктуру [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/nginx-obratnyj-proksi-server/' addthis:title='Nginx. Обратный прокси-сервер' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Под обратным проксированием обычно понимается процесс, в котором сервер, получающий запрос от клиента не обрабатывает его полностью самостоятельно, а частично или целиком отправляет этот запрос для обработки другим (<em>upstream</em>) серверам. То есть, не перенаправляет клиента, а самостоятельно отправляет запрос и возвращает полученный ответ обратно клиенту. Что это даёт?</p>
<p style="text-align: center;"><img class="aligncenter" title="Nginx" src="http://www.ashep.org/wp-content/uploads/2011/03/nginx_logo.gif" alt="" width="320" height="220" /></p>
<span id="more-2078"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p style="text-align: justify;">Используя обратное проксирование вы можете:</p>
<ul>
<li>скрыть инфраструктуру ваших серверов, обслуживающих сайт;</li>
<li>использовать <a href="http://en.wikipedia.org/wiki/Application_firewall">application firewall</a>, что даст вам централизованно анализировать входящий/исходящий трафик, не нагружая этим upstream-серверы;</li>
<li>переместить SSL с upstream-серверов на прокси;</li>
<li>балансировать нагрузку между upstream-серверами;</li>
<li>кэшировать статический и динамический контент, сжимать отправляемые данные самостоятельно, снижая общую нагрузку на upstream-серверы;</li>
</ul>
<p style="text-align: justify;">В <em>Nginx</em> функционал проксирования обеспечивается модулем HttpProxy, который компилируется по умолчанию, если при сборке Nginx вы явно не отключили его. Во всех современных дистрибутивах Nginx поставляется собранным с поддержкой проксирования, так что обычно никаких лишних телодвижений делать не нужно. Тем, кто не читал <a href="tag/nginx">предыдущих</a> моих статей об Nginx и тем, что забыл, напоминаю о том, что все действия, описываемые в этой серии статей, тестировались и выполнялись на <em>Debian 5 &laquo;Lenny&raquo;</em> и в незначительной степени могут отличаться от требуемых в вашей системе.</p>
<p style="text-align: justify;">Итак, давайте начнём экспериментировать!</p>
<p style="text-align: justify;">Допустим, у нас имеется два сервера:</p>
<ul>
<li>frontend-сервер Nginx, IP-адрес 192.168.0.1, порт 80;</li>
<li>upstream-сервер Apache2, IP-адрес 192.168.0.2, порт 80;</li>
</ul>
<p style="text-align: justify;">Начнём с малого: настроим проксирование абсолютно всех запросов, приходящих на frontend-сервер к upstream-серверу. Создайте отдельный файл конфигурации виртуальных хостов в <em>/etc/nginx/sites-available/proxy</em> со следующим содержимым:</p>
<pre>server {
  listen 192.168.0.1:80;
  access_log /var/log/nginx/proxy.log;
  location / {
    proxy_pass http://192.168.0.2;
  }
}</pre>
<p style="text-align: justify;">Не забудьте сделать соответствующий симлинк в каталог <em>/etc/nginx/sites-enabled/</em> и перезапустить сервер:</p>
<pre># ln -s /etc/nginx/sites-available/proxy /etc/nginx/sites-enabled/proxy
# /etc/init.d/nginx restart</pre>
<p style="text-align: justify;">Как видите, ничего революционно нового. Уже знакомые директивы <em>server</em> и <em>location</em>. Что нового, так это директива <em>proxy_pass</em>. Вложенная в <em>location</em>, она определяет URL сервера, к которому будет выполняться проксирование.</p>
<p style="text-align: justify;">От рассмотренной выше конфигурации на практике толку мало, разве что Nginx установлен у вас на файрволе и нет прямого доступа к upstream-серверу из Интернет.</p>
<p style="text-align: justify;">Давайте слегка усложним конфигурацию нашего серверного парка. Представим, что по каким-то причинам все файлы изображений у нас находятся на другом сервере с IP-адресом 192.168.0.3, порт 80. Таким образом, необходимо все запросы, содержащие в URI расширения графических файлов, перенаправить на этот самый сервер. Всё очень просто, нужно лишь добавить ещё один location, который и будет брать картинки с другого сервера:</p>
<pre>server {
  listen 192.168.0.1:80;
  access_log /var/log/nginx/proxy.log;

  location / {
    proxy_pass http://192.168.0.2;
  }
  location ~* \.(gif|jpg|jpeg|png)$ {
     proxy_pass http://192.168.0.3;
   }
}</pre>
<p style="text-align: justify;">Выполнять проксирование вовсе необязательно к другим серверам, это можно делать и в пределах localhost&#39;а. Например, у вас на сервере работает Apache, довольно сильно нагруженный каким-нибудь PHP-приложением. Зачем нагружать Apache ещё больше, поручая ему ещё и отдачу статических файлов? Не лучше ли вручить бразды правления статическим контентом Nginx&#39;у, который с этой задачей справляется на порядок быстрее.</p>
<pre style="text-align: justify;">server {
  listen 192.168.0.1:80;
  access_log /var/log/nginx/proxy.log;

  location / {
    root /var/www/;
  }
  location ~* \.php {
    proxy_pass http://127.0.0.1:8080;
  }
}</pre>
<p style="text-align: justify;">Обратите внимание на содержимое второго location&#39;a: при запросе php-файлов, Nginx будет проксировать запрос к локальному интерфейсу, на порт 8080, то есть конфигурацию вашего Apache необходимо изменить, чтобы он ожидал соединения на указанном адресе и порту.</p>
<p style="text-align: justify;">На сегодня пока всё. Но это далеко не всё, что касается обратного проксирования. Предвкушая возгласы &laquo;тема сисек не раскрыта&raquo;, сообщаю о том, что в будущих статьях об Nginx планируется рассмотреть настройку кэширования, балансировку нагрузки к upstream-серверам, а также, я надеюсь, многое-многое другое. Stay tuned ;-)</p>
<hr />
<p style="text-align: justify;">Все, кому не безразлична собственная анонимность, и безопасность своих онлайн-расчётов, могут попробовать сервис <a href="http://прокси.com.ua/">socks-прокси</a> от прокси.com.ua. Минимальные цены, техподдержка, индивидуальный подход к каждому клиенту.</p>
<p>&nbsp;</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/nginx-obratnyj-proksi-server/' addthis:title='Nginx. Обратный прокси-сервер' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2011/nginx-obratnyj-proksi-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Быстрый курс IPv6 в Linux. Продолжение</title>
		<link>http://www.ashep.org/2011/bystryj-kurs-ipv6-v-linux-prodolzhenie/</link>
		<comments>http://www.ashep.org/2011/bystryj-kurs-ipv6-v-linux-prodolzhenie/#comments</comments>
		<pubDate>Sat, 23 Apr 2011 03:56:55 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Сеть]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[IPv4]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[radvd]]></category>
		<category><![CDATA[rdnssd]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2035</guid>
		<description><![CDATA[Продолжая начатую ранее тему об IPv6, сегодня мы поговорим о глобальных IPv6-адресах, маршрутизации, раздаче адресов и службе имён. Всё, о чём пойдёт речь в этой статье, вы можете свободно тестировать в своей локальной сети между двумя хостами, не мешая при этом нормальному функционированию IPv4. Предотвращение утечки IPv6 В своих экспериментах мы будем использовать глобальные IPv6-адреса [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/bystryj-kurs-ipv6-v-linux-prodolzhenie/' addthis:title='Быстрый курс IPv6 в Linux. Продолжение' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Продолжая <a href="http://www.ashep.org/2011/bystryj-kurs-ipv6-v-linux/">начатую</a> ранее тему об <strong>IPv6</strong>, сегодня мы поговорим о глобальных IPv6-адресах, маршрутизации, раздаче адресов и службе имён. Всё, о чём пойдёт речь в этой статье, вы можете свободно тестировать в своей локальной сети между двумя хостами, не мешая при этом нормальному функционированию <strong>IPv4</strong>.</p>
<p style="text-align: center;"><img class="aligncenter" title="IPv6" src="http://www.ashep.org/wp-content/uploads/2011/04/ipv6-v2.jpg" alt="" width="314" height="216" /></p>
<span id="more-2035"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<h3 style="text-align: justify;">Предотвращение утечки IPv6</h3>
<p style="text-align: justify;">В своих экспериментах мы будем использовать глобальные IPv6-адреса из диапазона, предназначенного для использования в Интернет. Сегодня, когда провайдеры не поддерживают и не выдают IPv6-адреса своим клиентам, такие эксперименты не должны вызвать каких-либо проблем. Однако на всякий случай, всё же заблокируйте на вашем маршрутизаторе пропуск IPv6-пакетов наружу. Если ваш роутер работает под управлением Linux, то вы можете заблокировать весь IPv6-трафик следующими командами:</p>
<pre style="text-align: justify;"># ip6tables -P OUTPUT DROP
# ip6tables -p INPUT DROP
# ip6tables -p FORWARD DROP</pre>
<h3 style="text-align: justify;">Присваивание глобальных IPv6-адресов</h3>
<p style="text-align: justify;">Адреса link-local, которыми мы пользовались в <a href="http://www.ashep.org/2011/bystryj-kurs-ipv6-v-linux/">первой</a> статье довольно ограничены в применении. В реальной жизни нам понадобятся глобальные unicast-адреса. Такими адресами являются адреса из области <em>2000::/3</em>. Любознательные люди могут знать, что адреса из области <em>2001:0DB8::/32</em> предназначены для использования в экспериментах, так что их мы и будем использовать. Давайте присвоим реальный IP-v6-адрес сетевому интерфейсу <em>eth0</em>:</p>
<pre># ip -6 addr add 2001:0db8::1/64 dev eth0</pre>
<p style="text-align: justify;">Обратите внимание: <em>/64</em>&nbsp;&mdash; это не CIDR-нотация, это количество бит <em>префикса</em>. Следующая диаграмма поможет понять о чём идёт речь:</p>
<pre>2001:db8:0000:0000:0000:0000:0000:0001
_____________|____|___________________
Network ID   Subnet  Interface ID</pre>
<p style="text-align: justify;"><em>Network ID</em> определяется провайдером, когда он выдаёт блок IPv6-адресов. Вы же можете управлять значением <em>Subnet</em> и <em>Interface ID</em>. Таким образом, в нашем случае 64 бита отведены под <em>Network ID</em> + <em>Subnet</em> и 64 бита под <em>Inetrface ID</em>. Вспомните, что в IPv4 для адреса в целом отводилось 32 бита, так что выделенного такого размера блока адресов вам хватит очень надолго!</p>
<p style="text-align: justify;">Теперь вы можете  пинговать интерфейс в пределах локальной системы по назначенному ему IPv6-адресу. Здесь я только для примера ввожу длинный IPv6-адрес в полном формате, чтобы вы увидели, как  программа <em>ping6</em> автоматически сократит его:</p>
<pre>$ ping6 2001:db8:0:0:0:0:0:1
PING 2001:db8:0:0:0:0:0:1(2001:db8::1) 56 data bytes
64 bytes from 2001:db8::1: icmp_seq=1 ttl=64 time=0.043 ms</pre>
<p style="text-align: justify;">Однако пинг с другого хоста у вас не пройдёт, поскольку для этого, так же как и с IPv4 нам понадобится роутер.</p>
<h3 style="text-align: justify;">Добавление адресов</h3>
<p style="text-align: justify;">Вы можете добавлять сколько угодно адресов интерфейсам ваших систем. Просто считайте в шестнадцатиричной системе по порядку: <em>1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 10, 11</em> и так далее, получая таким образом новые адреса:</p>
<pre>2001:db8::1
2001:db8::2
2001:db8::3
...
2001:db8::18
2001:db8::19
2001:db8::1a
2001:db8::1b</pre>
<h3 style="text-align: justify;">Маршрутизация</h3>
<p style="text-align: justify;">Само-собой разумеется, ваш роутер должен поддерживать IPv6. Если вашим роутером является Linux-система, то включить маршрутизацию можно следующей командой:</p>
<pre style="text-align: justify;"># sysctl -w net.ipv6.conf.all.forwarding=1</pre>
<p style="text-align: justify;">Проверить, включена ли маршрутизация IPv6, можно командой:</p>
<pre># cat /proc/sys/net/ipv6/conf/eth0/forwarding
1</pre>
<p style="text-align: justify;">&laquo;1&raquo; означает, что всё хорошо и в вашем устройстве маршрутизация шестой версии IP включена. Теперь установите <strong>radvd</strong>&nbsp;&mdash; <em>router advertiser daemon</em> и в его файле конфигурации <em>/etc/radvd.conf</em> поместите следующее, изменив имя интерфейса <em>eth0</em>, если нужно:</p>
<pre>interface eth0
{
   AdvSendAdvert on;
   prefix 2001:db8::/64
   {
   };
};</pre>
<p style="text-align: justify;">Теперь добавьте интерфейсу вашего роутера IPv6-адрес:</p>
<pre># ip address add 2001:db8::1a/64 dev eth0</pre>
<p style="text-align: justify;">Проверьте, всё ли у вас получилось так, как нужно, при помощи команд</p>
<pre>$ ifconfig eth0 | grep inet6
          inet6 addr: 2001:db8::1a/64 Scope:Global
          inet6 addr: fe80::20e:2eff:feb9:cbad/64 Scope:Link</pre>
<pre>$ ip -6 route show
2001:db8::/64 dev eth0  metric 1024  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev eth0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0</pre>
<p style="text-align: justify;">И теперь можно запустит <em>radvd</em>:</p>
<pre># /etc/init.d/radvd start</pre>
<p style="text-align: justify;">Теперь вы должны без проблем пинговать интерфейс вашего роутера. обратите внимание, что в случае с глобальным адресом, в отличие от link-local, вам не нужно указывать имя интерфейса:</p>
<pre style="text-align: justify;">$ ping6 2001:0db8::1a
PING 2001:db8::1a(2001:db8::1a) 56 data bytes
64 bytes from 2001:db8::1a: icmp_seq=1 ttl=64 time=1.73 ms</pre>
<p style="text-align: justify;">Все компьютеры, находящиеся на одном свитче с маршрутизатором должны теперь автоматически получить адреса из диапазона <em>2001:0db8::/64</em>. Чтобы добавить в таблицу маршрутизации ваших хостов роутер по-умолчанию воспользуйтесь командой:</p>
<pre># ip -6 route add default via 2001:db8::1a</pre>
<p style="text-align: justify;">Можно избавиться от ручного добавления этой записи в таблицы маршрутизации хостов, немного дополнив конфигурацию вашего <em>radvd</em>:</p>
<pre>interface eth0
{
  AdvSendAdvert on;
  prefix 2001:db8::/64
  {
    AdvOnLink on;
    AdvAutonomous on;
  };
  route ::/0
  {
  };
}</pre>
<p style="text-align: justify;">Теперь в таблицах маршрутизации IPv6 ваших хостов вы будете видеть следующее:</p>
<pre>$ ip -6 route show
...
default via 2001:db8::1a dev eth0 metric 1024 mtu 1500 advmss 1440 hoplimit 0
...</pre>
<p style="text-align: justify;">Что делать, если вам не нужно, чтобы <em>radvd</em> раздавал IPv6-адреса всем подряд в вашей сети? Про перечислите в файле конфигурации демона link-local адреса тех станций, которым вы хотите выдавать адрес, а запросы от остальных будут просто проигнорированы:</p>
<pre>interface eth0
{
  AdvSendAdvert on;

  prefix 2001:db8::/64
  {
    AdvOnLink on;
    AdvAutonomous on;
  };
  route ::/0
  {
  };
  clients
  {
    fe80::20d:b9ff:fe05:25b4;
    fe80::20b:6aff:feef:7e8d;
    fe80::221:97ff:feed:ef01;
  };
};</pre>
<h3 style="text-align: justify;">Калькулятор IPv6-адресов</h3>
<p style="text-align: justify;">Понимание двоичной арифметики очень важно для понимания принципов адресации в IP. Вычисления адресов вручную бывают довольно утомительными и нередко приводят к ошибкам. Почему бы не возложить эти вычисления на плечи компьютера? Существует масса <a href="http://www.google.com/search?q=ip6+calculator+online">онлайн-утилит</a> для этого, выбирайте себе любую! Также в большинстве дистрибутивов вы найдёте в репозиториях утилиту <strong>ipv6calc</strong>, которая пригодится для локального пользования.</p>
<h3 style="text-align: justify;">Службы имён</h3>
<p style="text-align: justify;">Вообще, настройка DNS для IPv6&nbsp;&mdash; тема достаточно объёмной статьи, однако я надеюсь что некоторые описанные здесь моменты дадут вам нужное направление.</p>
<p style="text-align: justify;">Идея, лежащая в основе автоконфигурации сетевых IPv6 интерфейсов (link-local адреса и <em>router advertisements</em>), призвана избавить от необходимости держать DHCP-сервер, однако вам всё ещё нужно поддерживать DNS-сервер, чтобы хосты могли выполнять преобразование имён в IP-адреса и обратно. <em>BIND9</em> уже поддерживает IPv6, но как всегда в случае с BIND, вам придётся потрудиться, перелопатив несколько конфиг-файлов, расположенных в разных местах. В других DNS-демонах от вас понадобилось бы меньше усилий, однако ещё никакой из них не поддерживает IPv6 в полном объёме. Если вас заинтересовала тема настройки IPv6 в BIND, вы может обратить к <a href="http://www.bind9.net/manuals">руководству по BIND</a>.</p>
<p style="text-align: justify;">В <a href="http://www.ashep.org/2011/bystryj-kurs-ipv6-v-linux/">предыдущей статье</a> мы рассматривали вариант использования старого-доброго <em>/etc/hosts</em>. Как вариант, вы можете использовать <a href="http://www.ashep.org/2010/nemnogo-o-dnsmasq/">Dnsmasq</a>, который является моим любимым средством организации DNS в локальных сетях. Он поддерживает IPv6-DNS и TFTP, однако в нём нет DHCP, что не позволяет ему быть универсальным решением. <em>Dnsmasq </em>делает содержимое <em>/etc/hosts</em> доступным по сети, используя DNS-протокол. Сперва настройте IPv6-интерфейсы ваших хостов на использование  статических адресов, а затем разместите соответствие адресов именам в файле <em>/etc/hosts</em> вашего Dnsmasq-сервера и перезапустите демон Dnsmasq. Далее установите <strong>rdnssd</strong>&nbsp;&mdash; <em>recursive DNS server discovery daemon</em> на том же хосте, где у вас установлен <em>radvd</em>, затем добавьте в файл конфигурации <em>/etc/radvd.conf</em> строку, указывающую адрес вашего Dnsmasq-сервера:</p>
<pre>RDNSS 2001:0db8::1b</pre>
<p style="text-align: justify;">Перезапустите <em>radvd</em>. Проекты <em>radvd</em> и <em>rdnssd</em> находятся в стадии разработки, поэтому не исключено, что вы можете столкнуться с какими-нибудь проблемами, хотя на моих Debian-системах они работают отлично.</p>
<p style="text-align: right;">Источник: <a href="http://www.linux.com/learn/tutorials/432537:another-ipv6-crash-course-for-linux-real-ipv6-addresses-routing-name-services">linux.com</a></p>
<p style="text-align: justify;">&nbsp;</p>
<p style="text-align: justify;">&nbsp;</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/bystryj-kurs-ipv6-v-linux-prodolzhenie/' addthis:title='Быстрый курс IPv6 в Linux. Продолжение' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2011/bystryj-kurs-ipv6-v-linux-prodolzhenie/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Виртуальные хосты в Nginx</title>
		<link>http://www.ashep.org/2011/virtualnye-xosty-v-nginx/</link>
		<comments>http://www.ashep.org/2011/virtualnye-xosty-v-nginx/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 17:29:28 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Сеть]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=2008</guid>
		<description><![CDATA[Итак, продолжаем нашу передачу. Редко какой веб-сервер обходится без использования концепции виртуального хостинга. И это понятно, ведь обычно сайты не нуждаются в постоянной полной мощности сервера, да и неэкономично это. Nginx предлагает замечательные возможности по организации виртуального хостинга при этом требуя от администратора минимум трудозатрат и времени. Вообще-то, в предыдущих статьях мы уже сталкивались с [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/virtualnye-xosty-v-nginx/' addthis:title='Виртуальные хосты в Nginx' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Итак, продолжаем нашу <a href="http://www.ashep.org/tag/nginx">передачу</a>. Редко какой веб-сервер обходится без использования концепции <a href="http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3">виртуального хостинга</a>. И это понятно, ведь обычно сайты не нуждаются в постоянной полной мощности сервера, да и неэкономично это. Nginx предлагает замечательные возможности по организации виртуального хостинга при этом требуя от администратора минимум трудозатрат и времени. Вообще-то, в предыдущих статьях мы уже сталкивались с виртуальными хостами Nginx, поскольку ни одна рабочая конфигурация этого демона не обходится без хотя бы одного виртуального хоста. В сегодняшней заметке мы с вами рассмотрим пример настройки двух виртуальных хостов, чтобы начинающие смогли понять что к чему и в своих конфигурациях настраивать столько хостов, сколько нужно.</p>
<p style="text-align: center;"><img class="aligncenter" title="Nginx" src="http://www.ashep.org/wp-content/uploads/2011/03/nginx_logo.gif" alt="" width="320" height="220" /></p>
<span id="more-2008"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p style="text-align: justify;">По своей природе виртуальные хосты бывают двух типов: <em>&laquo;name-based&raquo;</em> и <em>&laquo;address-based&raquo;</em>. Хосты первого типа сервер обслуживает на основе их доменного имени, получаемого от клиента в момент запроса. Виртуальные Хосты второго типа обслуживаются сервером на основании IP-адреса интерфейса, на который поступил запрос от клиента. Также, конечно же, можно комбинировать эти два типа, т. е. на определённом IP-интерфейсе &laquo;вешать&raquo; определённые name-based виртуальные хосты.</p>
<p style="text-align: justify;">Если вы читали <a href="http://www.ashep.org/2011/nginx-staticheskij-veb-server/">одну из предыдущих статей</a> о конфигурировании Nginx, то должны помнить опцию <em>server</em>, используемую для создания секции виртуального хоста. Таких секций в вашем файле конфигурации может быть множество, где каждая будет описывать отдельный виртуальный хост. Таким образом, файл конфигурации, описывающий несколько виртуальных хостов, будет выглядеть примерно так:</p>
<pre>server {
...
}
server {
...
}
server {
...
}
...</pre>
<h2 style="text-align: justify;">Name-based</h2>
<p style="text-align: justify;">Теперь давайте попробуем на практике создать конфигурацию для пары виртуальных name-based виртуальных хостов <strong>domain-1.com</strong> и <strong>domain-2.com</strong>. Создайте новый файл конфигурации Nginx, например, в <strong>/etc/nginx/sites-available/twohosts</strong> (напоминаю ещё раз: все примеры рассматриваются в контексте установленного из репозиториев Nginx в Debian 5) и откройте его в текстовом редакторе. Следующая конфигурация описывает два виртуальных хоста:</p>
<pre>server {
  server_name domain-1.com;
  access_log /var/log/nginx/domain-1.com.log;

  location / {
    root /var/www/domain-1.com;
    index index.htm index.html;
  }
}

server {
  server_name domain-2.com;
  access_log /var/log/nginx/domain-2.com.log;
  location / {
    root /var/www/domain-2.com;
    index index.htm index.html;
  }
}</pre>
<p style="text-align: justify;">Обратите внимание, что в конфигурации обоих хостов отсутствует параметр listen, определяющий IP-адрес интерфейса и порт, на котором хосты будут ожидать входящих соединений. Таким образом, описанные выше виртуальные хосты будут ожидать соединений на любом интерфейсе, на порту 80. Далее создайте каталоги для хранения контента:</p>
<pre style="text-align: justify;"># mkdir /var/www/domain-{1,2}.com</pre>
<p style="text-align: justify;">И поместите в них по индексному файлу с различным содержимым, чтобы отличить при подключении из браузера один от другого:</p>
<pre># for NAME in `seq 2`; do echo "Domain ${NAME}" &gt; /var/www/domain-${NAME}.com/index.html; done</pre>
<p style="text-align: justify;">Делаем новый конфигурационный файл доступным для загрузки Nginx:</p>
<pre style="text-align: justify;"># ln -s /etc/nginx/sites-available/twohosts /etc/nginx/sites-enabled/twohosts</pre>
<p style="text-align: justify;">И перезапускаем сервер:</p>
<pre style="text-align: justify;"># /etc/init.d/nginx restart</pre>
<p style="text-align: justify;">Не забудьте добавить в <em>/etc/hosts</em> вашего клиентского компьютера необходимые записи (естественно, не забудьте заменить IP-адрес сервера на тот, который у вас):</p>
<pre style="text-align: justify;"># echo 192.168.0.1 domain-{1,2}.com &gt;&gt; /etc/hosts</pre>
<p style="text-align: justify;">На этом всё. Теперь попробуйте с клиентского компьютера открыть браузером URL <em>http://domain-1.com</em> и <strong>http://domain-2.com</strong>. Если всё настроено верно, то по каждому из URL вы увидите строки <em>&laquo;Domain 1&raquo;</em> и <em>&laquo;Domain 2&raquo;</em> соответственно.</p>
<h2 style="text-align: justify;">Address-based</h2>
<p style="text-align: justify;">Иногда бывает необходимо, чтобы виртуальный хост был доступен только по определённому адресу, а не со всех интерфейсов сервера. Здесь на помощь приходит уже известный по предыдущим публикациям параметр <em>listen</em>. Допустим, у вашего сервера есть два интерфейса: <em>192.168.0.1</em> и <em>192.168.0.2</em>. Вам необходимо, чтобы виртуальный хост <em>domain-1.com</em> был доступен только по адресу <em>192.168.0.1</em>, а хост <em>domain-2.com</em>&nbsp;&mdash; по адресу <em>192.168.0.2</em>. Всё, что вам нужно сделать это задействовать параметр listen в конфигурации каждого из виртуальных хостов:</p>
<pre>server {
  server_name domain-1.com;
  access_log /var/log/nginx/domain-1.com.log;
  listen 192.168.0.1;

  location / {
    root /var/www/domain-1.com;
    index index.htm index.html;
  }
}

server {
  server_name domain-2.com;
  access_log /var/log/nginx/domain-2.com.log;
  listen 192.168.0.2;
  location / {
    root /var/www/domain-2.com;
    index index.htm index.html;
  }
}</pre>
<p style="text-align: justify;">
<p style="text-align: justify;">
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/virtualnye-xosty-v-nginx/' addthis:title='Виртуальные хосты в Nginx' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2011/virtualnye-xosty-v-nginx/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Выпущен Nginx 1.0.0</title>
		<link>http://www.ashep.org/2011/vypushhen-nginx-1-0-0/</link>
		<comments>http://www.ashep.org/2011/vypushhen-nginx-1-0-0/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 12:33:07 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Сеть]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=1990</guid>
		<description><![CDATA[Спустя девять лет разработки HTTP-сервер, реверс-прокси, а также POP3/IMAP прокси-сервер Nginx достиг версии 1.0.0. Созданный Игорем Сысоевым для нужд компании &#171;Рамблер&#187;, Nginx впервые был представлен публике в октябре 2004 года. Согласно последнему исследованию Netcraft сегодня Nginx занимает четвёртое место в мире по использованию в качестве веб-сервера. Основными возможностями Nginx сегодня являются: поддержка SSL/TLS; name-based и [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/vypushhen-nginx-1-0-0/' addthis:title='Выпущен Nginx 1.0.0' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Спустя девять лет разработки HTTP-сервер, реверс-прокси, а также POP3/IMAP прокси-сервер <a href="http://www.ashep.org/tag/nginx">Nginx</a> достиг версии 1.0.0. Созданный <a href="http://www.ashep.org/goto/http://sysoev.ru/">Игорем Сысоевым</a> для нужд компании &laquo;Рамблер&raquo;, Nginx впервые был представлен публике в октябре 2004 года. Согласно последнему <a href="http://news.netcraft.com/archives/2011/04/06/april-2011-web-server-survey.html">исследованию Netcraft</a> сегодня Nginx занимает четвёртое место в мире по использованию в качестве веб-сервера.</p>
<p style="text-align: center;"><img class="aligncenter" title="Nginx" src="http://www.ashep.org/wp-content/uploads/2011/03/nginx_logo.gif" alt="" width="320" height="220" /></p>
<span id="more-1990"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p style="text-align: justify;">Основными возможностями Nginx сегодня являются:</p>
<ul>
<li><a href="http://www.ashep.org/2011/nginx-staticheskij-veb-server-s-ssl/">поддержка SSL/TLS</a>;</li>
<li>name-based и IP-based виртуальные сервера;</li>
<li>pipelined и keep-alive  соединения ;</li>
<li>перенастройка &laquo;на лету&raquo;;</li>
<li>потоковое FLV;</li>
<li>управление соединениями на базе IP-адреса источника;</li>
<li>встроенный Perl.</li>
</ul>
<p style="text-align: justify;">Nginx разработан для <a href="http://www.ashep.org/2011/nginx-staticheskij-veb-server/">хостинга статического контента</a>, однако может использоваться и для хостинга динамического содержимого при помощи модуля FastCGI. Управление нагрзукой внутри сервера осуществляется при помощи событийно-управляемого обработчика запросов и архитектуры, предотвращающей  ветвление процессов. В Nginx используется один главн процесс, который управляет рабочими процессами.</p>
<p style="text-align: justify;">Nginx портирован на FreeBSD, Linux, Solaris, Mac OS X и Windows, причём на каждой из этих систем сервер может использовать наиболее эффективный для данной ОС метод обработки событий. Перед сборкой Nginx из исходных кодов пользователь может выбрать необходимые для работы модули, реализующие функции от базовой работы с HTTP до поддержки WebDAV и GeoIP. При помощи модулей сторонних разработчиков в Nginx можно добавить поддержку Lua, обработку изображений &laquo;на лету&raquo;, поддержку БД Redis и Drizzle, backend-менеджмент и многое другое.</p>
<p style="text-align: justify;">Последняя версия Nginx доступна из SVN-репозитория проекта svn://svn.nginx.org и распространяется на условиях BSD-подобной лицензии, состоящей из двух пунктов. Больше информации мы можете получить на <a href="http://www.ashep.org/goto/http://nginx.org/">сайте проекта</a>, а также из <a href="http://www.ashep.org/goto/http://wiki.nginx.org/">wiki</a>, содержащей в том числе инструкции по установке двоичных сборок под Linux, BSD и Windows. История изменений, вплоть до последней версии, также доступна <a href="http://www.ashep.org/goto/http://nginx.org/en/CHANGES">онлайн</a>.</p>
<p style="text-align: right;">Источник <a href="http://www.h-online.com/open/news/item/nginx-HTTP-server-reaches-version-1-0-0-1226531.html">h-online.com</a></p>
<hr />
<p style="text-align: justify;">
Не хотите нанимать ИТ-специалиста на полный рабочий день, а ваша информационная инфраструктура периодически  требует поддержки? <a href="http://cs-companion.ru/">Ремонт компьютеров</a>, модернизация существующей техники, обслуживание на договорной основе, консультации&nbsp;&mdash; всё это без выходных, за приемлемую цену.</p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/vypushhen-nginx-1-0-0/' addthis:title='Выпущен Nginx 1.0.0' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2011/vypushhen-nginx-1-0-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Об nmap для начинающих</title>
		<link>http://www.ashep.org/2011/ob-nmap-dlya-nachinayushhix/</link>
		<comments>http://www.ashep.org/2011/ob-nmap-dlya-nachinayushhix/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 10:48:28 +0000</pubDate>
		<dc:creator>ashep</dc:creator>
				<category><![CDATA[Безопасность]]></category>
		<category><![CDATA[Сеть]]></category>
		<category><![CDATA[Nmap]]></category>

		<guid isPermaLink="false">http://www.ashep.org/?p=1975</guid>
		<description><![CDATA[Когда-нибудь задавались вопросом, откуда взломщики узнают о том, какие порты открыты в системе и какие службы доступны на этих портах? Как они это делают, не задавая вопросов администратору сервера? Это и гораздо больше можно делать при помощи маленькой утилиты под названием nmap. nmap&#160;&#8212; это сокращение от &#171;Network Mapper&#187;, по-русски можно назвать &#171;построитель карты сети&#187;. Nmap&#160;&#8212; [...]<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/ob-nmap-dlya-nachinayushhix/' addthis:title='Об nmap для начинающих' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Когда-нибудь задавались вопросом, откуда взломщики узнают о том, какие порты открыты в системе и какие службы доступны на этих портах? Как они это делают, не задавая вопросов администратору сервера? Это и гораздо больше можно делать при помощи маленькой утилиты под названием <strong>nmap</strong>. nmap&nbsp;&mdash; это сокращение от <strong>&laquo;N</strong>etwork <strong>Map</strong>per&raquo;, по-русски можно назвать &laquo;построитель карты сети&raquo;. Nmap&nbsp;&mdash; поистине огромный набор инструментов &laquo;в одном флаконе&raquo; для сканирования сетей. Он может использоваться для поиска и определения запущенных в сети сервисов, определения типа используемой операционной системы, типа файрвола или же просто для быстрого определения хостов, находящихся в сети. Короче говоря, уметь пользоваться этой штуковиной лишним не будет. Nmap очень известная утилита в буквальном смысле. Когда вы с ней познакомитесь, вы можете узнать её в <a href="http://nmap.org/movies.html#gwtdt">некоторых эпизодах кинофильмов</a>. В этой заметке я покажу вам базовые приёмы работы с Nmap и покажу несколько примеров, как его использовать.</p>
<p style="text-align: center;"><img class="size-full wp-image-1981 aligncenter" title="Nmap" src="http://www.ashep.org/wp-content/uploads/2011/04/Nmap.gif" alt="" width="200" height="155" /></p>
<span id="more-1975"></span>
<div style="margin-bottom: 5px; text-align: center;"><script type="text/javascript"><!--
google_ad_client = "pub-1230167300848028";
/* 468x60 */
google_ad_slot = "1268117829";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p style="text-align: justify;">В большинстве современных дистрибутивов Nmap присутствует в стандартных репозиториях. Если к используемой вами системе это не относится, вы можете получить исходные коды утилиты и некоторые бинарные сборки со страницы <a href="http://nmap.org/download.html">загрузок</a> проекта.</p>
<p style="text-align: justify;">Синтаксис вызова утилиты из командной строки следующий:</p>
<pre style="text-align: justify;">nmap &lt;опции&gt; цель</pre>
<p style="text-align: justify;">Допустим, вам необходимо попытаться определить тип и версию запущенной ОС на удалённой системе target.host.com. Запустите Nmap с опцией <em>&#39;-O&#39; </em>(использование этой опции требует администраторских привилегий):</p>
<pre style="text-align: justify;"># nmap -O target.host.com</pre>
<p style="text-align: justify;">Опрос удалённой системы займёт некоторое время и после того, как он завершится, вы получите вывод, подобный представленному ниже:</p>
<pre style="text-align: justify;">Starting Nmap 5.21 ( http://nmap.org ) at 2010-02-27 23:52 EST
Nmap scan report for 10.0.0.1
Host is up (0.0015s latency).
Not shown: 997 closed ports
PORT      STATE SERVICE
53/tcp    open  domain
5009/tcp  open  airport-admin
10000/tcp open  snet-sensor-mgmt
MAC Address: 00:11:24:6B:43:E2 (Apple Computer)
Device type: WAP|printer
Running: Apple embedded, Canon embedded, Kyocera embedded, Xerox embedded
OS details: VxWorks: Apple AirPort Extreme v5.7 or AirPort Express v6.3; Canon imageRUNNER printer (5055, C3045, C3380, or C5185); Kyocera FS-4020DN printer; or Xerox Phaser 8860MFP printer
Network Distance: 1 hop
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 10.21 seconds</pre>
<p style="text-align: justify;">Как вы видите, Nmap предоставил достаточно много информации. В представленном примере Nmap выполнил ряд тестов, на основании которых попытался определить тип и версию ОС, используемую на хосте. Приведённый выше вывод Nmap&nbsp;&mdash; результат сканирования роутера Apple Airport Extreme. Помимо того, что Nmap сообщил нам тип предполагаемой ОС, он также вывел информацию о сетевой удалённости устройства, MAC-адрес и производителя сетевого интерфейса, перечень открытых портов и время, затраченное на сканирование.</p>
<p style="text-align: justify;">Ниже представлен вывод другого сканирования, хоста под управлением Ubuntu 9.10:</p>
<pre>Starting Nmap 5.21 ( http://nmap.org ) at 2010-02-28 00:00 EST
Nmap scan report for 10.0.0.6
Host is up (0.0039s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: 00:17:08:2A:D6:F0 (Hewlett Packard)
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.19 - 2.6.31
Network Distance: 1 hop
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 3.40 seconds</pre>
<p style="text-align: justify;">Здесь мы видим, что производителем сетевого интерфейса является HP, операционной системой является Linux с ядром версии в районе 2.6.19-2.6.31. Вообще, точно определить версию ядра Linux с помощью Nmap обычно невозможно.</p>
<h2 style="text-align: justify;">Предупреждение</h2>
<p style="text-align: justify;">В приведённых выше примерах я сканировал свой собственный роутер и одну из рабочих станций, находящихся в моей сети, поскольку я имею на то полное право. В принципе вы можете сканировать любой хост, какой пожелаете, однако, не очень хорошая идея заниматься сканированием чужих сетей и хостов без разрешения их владельцев. Если вам нужен хочт для экспериментов, сообщество готово вам его предоставить по адресу <strong>scanme.nmap.org</strong>. Этот хост специально создан для тестирования Nmap, только если вы не собираетесь тестировать на нём атаки типа DoS.</p>
<p style="text-align: justify;">Некоторые администраторы без понимания относятся к неожиданным сканированиям их сетей, поэтому не вылезайте за рамки и сканируйте те хосты, которые вам разрешено сканировать. Помимо всего прочего, действие некоторых агрессивных методов сканирования Nmap могут выходить за рамки правил, установленных вашим провайдером, так что будьте внимательны.</p>
<h2 style="text-align: justify;">Сканирование нескольких хостов</h2>
<p style="text-align: justify;">За один запуск Nmap вы можете сканировать более одного хоста. Если в качетсве целей сканирования вы используете IP-адреса, вы можете передавать их Nmap в виде диапазонов, например: <strong>10.0.0.1-6</strong> или <strong>10.0.0.0/24</strong>. Первый способ определяет диапазон IP-адресов c 10.0.0.1 по 10.0.0.6, а вторая&nbsp;&mdash; с 10.0.0.1 по 10.0.0.254, т. е. всю подсеть 10.0.0.0 с маской 24 в CIDR-нотации. Например, если вы хотите выполнить сканирование хостов с IP-адресами 10.0.0.1-10.0.0.42, команда будет следующей:</p>
<pre style="text-align: justify;"># nmap -O 10.0.0.1-42</pre>
<p style="text-align: justify;">Если же вы используете имена хостов вместо адресов, то просто перечислите имена через пробел:</p>
<pre style="text-align: justify;"># nmap -O host1.target.com host2.target.com</pre>
<h2 style="text-align: justify;">Поиск открытых портов</h2>
<p style="text-align: justify;">Если вы запустите Nmap без опций, передав ему лишь имя целевого хоста, то Nmap выполнит сканирование цели на предмет открытых сетевых портов и служб их прослушивающих. Например:</p>
<pre>$ nmap target.hostname.com

Interesting ports on target.hostname.com (10.0.0.88):
Not shown: 1711 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql
Nmap done: 1 IP address (1 host up) scanned in 0.228 seconds</pre>
<p style="text-align: justify;">Здесь вы можете увидеть, что на целевом хосте открыты порты 22, 80 и 3306 с перечислением названий сервисов, сидящих на этих портах, соответственно ssh, http и mysql. Nmap распознаёт шесть <a href="http://nmap.org/book/man-port-scanning-basics.html">состояний</a> портов: <em>open</em> (открыт), <em>closed</em> (закрыт), <em>filtered</em> (порт недоступен, скорее всего фильтруется файрволом), <em>unfiltered</em> (порт доступен, но состояние определить не удалось), <em>open|filtered</em> (открыт или фильтруется файрволом), и <em>closed|filtered</em> (закрыт или фильтруется файрволом).</p>
<p style="text-align: justify;">Если вам нужна более детальная информация, воспользуйтесь одинарной или двойной опцией <em>&#39;-v&#39;</em>, например:</p>
<pre>$ nmap -vv host.target.com

Initiating Ping Scan at 11:44
Scanning 10.0.0.28 [1 port]
Completed Ping Scan at 11:44, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 11:44
Completed Parallel DNS resolution of 1 host. at 11:44, 0.00s elapsed
Initiating Connect Scan at 11:44
Scanning host.target.com (10.0.0.28) [1714 ports]
Discovered open port 22/tcp on 10.0.0.28
Discovered open port 80/tcp on 10.0.0.28
Discovered open port 3306/tcp on 10.0.0.28
Completed Connect Scan at 11:44, 0.08s elapsed (1714 total ports)
Host host.target.com (10.0.0.28) appears to be up ... good.
Interesting ports on host.target.com (10.0.0.28):
Not shown: 1711 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
3306/tcp open  mysql
Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.104 seconds</pre>
<h2 style="text-align: justify;">Сканирование служб</h2>
<p style="text-align: justify;">Если вам необходимо выяснить как можно подробней, что за сервис болтается на том или ином порту, попробуйте воспользоваться опциями <em>&#39;-sV&#39;</em>. Эти опции заставляют Nmap вместо обычного сканирования портов, произвести более агрессивное сканирование, опрашивая сервисы, находящиеся на том или ином порту. Также этот метод иногда позволяет более точно определить тип и версию используемой на целевой системе ОС.</p>
<pre>$ nmap -sV target.host.com

Starting Nmap 5.21 ( http://nmap.org ) at 2010-02-28 00:15 EST
Nmap scan report for test.host.net (XX.XXX.XXX.XX)
Host is up (0.090s latency).
Not shown: 965 closed ports, 33 filtered ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 4.7p1 Debian 8ubuntu1.2 (protocol 2.0)
80/tcp open  http    Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch)
Service Info: OS: Linux
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.43 seconds</pre>
<p style="text-align: justify;">Как видно из вывода выше, Nmap определил серверы SSH-4.7 и Apache-2.2.8, находящиеся на портах 22 и 80. Также из названий версий ПО удаётся определить, что сервер работает под Ubuntu Linux. Такой метод сканирования может оказаться весьма кстати, когда вам необходимо выявить устаревшие версии ПО, работающие на ваших хостах, которые могут быть подвержены известным угрозам.</p>
<h2 style="text-align: justify;">Кто живёт в моей сети?</h2>
<p style="text-align: justify;">Не уверены точно, что знаете обо всех обитателях своей сети? Попробуйте запустить Nmap с параметрами <strong>&#39;-sP&#39;</strong> и он выполнит обычное пинг-сканирование, определяя лишь отвечающие хосты, не прибегая к сканированию портов. Например, чтобы определить &laquo;живых&raquo; в подсети 10.0.0.0/24, достаточно простой команды:</p>
<pre style="text-align: justify;">$ nmap -sP 10.0.0.0/24</pre>
<p style="text-align: justify;">Или же, как было сказано выше, вы можете указать диапазон хостов, а не всю подсеть. Например:</p>
<pre>$ nmap -sP 10.0.0.1-16</pre>
<h2 style="text-align: justify;">Zenmap</h2>
<p style="text-align: justify;">Если работа в режиме командной строки&nbsp;&mdash; не ваш конёк, вы можете воспользоваться <a href="http://www.ashep.org/2010/audit-seti-pri-pomoshhi-zenmap/">Zenmap</a>&nbsp;&mdash; GUI-утилитой, облегчающей построение командной строки Nmap, а также обладающую некоторыми бонусами вроде построения графической карты сети.</p>
<p style="text-align: justify;">Zenmap обладает предустановленными профилями сканирования, которые вы можете просто выбрать из выпадающего списка и, возможно, не погружаться в тонкости работы опций Nmap. Zenmap&nbsp;&mdash; отличный инструмент для тех, кто ещё только собирается познакомиться с Nmap или просто желает с ним поиграть. Если же вам по долгу службы придётся использовать Nmap часто, то конечно же, обязательно изучите документацию к нему и потратьте время на эксперименты.</p>
<h2 style="text-align: justify;">Итоги</h2>
<p style="text-align: justify;">В будущих статьях об Nmap мы более плотно прикоснёмся к этому невероятно мощному инструменту. А пока, я надеюсь, эта статья даст некоторый стимул к его изучению тем, кто ещё этого не сделал.</p>
<p style="text-align: right;">По материалам <a href="http://www.linux.com/learn/tutorials/290879-beginners-guide-to-nmap">Linux.Com</a></p>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style" addthis:url='http://www.ashep.org/2011/ob-nmap-dlya-nachinayushhix/' addthis:title='Об nmap для начинающих' ><a class="addthis_button_twitter"></a><a class="addthis_button_evernote"></a><a class="addthis_button_facebook"></a><a class="addthis_button_vk"></a><a class="addthis_button_mymailru"></a><a class="addthis_button_moikrug"></a><a class="addthis_button_compact"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ashep.org/2011/ob-nmap-dlya-nachinayushhix/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

