<?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>Unix notes &#187; Apache</title>
	<atom:link href="http://unix-notes.ru/category/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://unix-notes.ru</link>
	<description>Заметки по настройке Unix/Linux систем, хостинг-серверов</description>
	<lastBuildDate>Thu, 03 Nov 2011 12:43:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Разные php.ini для Apache и консольных скриптов</title>
		<link>http://unix-notes.ru/2011/02/02/raznye-php-ini-dlya-apache-i-konsolnykh-skriptov/</link>
		<comments>http://unix-notes.ru/2011/02/02/raznye-php-ini-dlya-apache-i-konsolnykh-skriptov/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 13:04:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=657</guid>
		<description><![CDATA[Иногда бывает нужно сделать так, чтобы апач и скрипты запускаемые кроном имели разные php.ini. К примеру, для того чтобы ограничить скрипты апача разными disable_functions. Просто создаем копию php.ini в любом месте, допустим, это будет версия для Apache. Добавляем в нее: disable_functions=popen,exec,system,passthru,proc_open,shell_exec Это серьезно усложнит жизнь злоумышленнику на пути повышения привилегий. И прописываем путь к этому [...]]]></description>
			<content:encoded><![CDATA[<p>Иногда бывает нужно сделать так, чтобы апач и скрипты запускаемые кроном имели разные php.ini. К примеру, для того чтобы ограничить скрипты апача разными disable_functions.<br />
Просто создаем копию php.ini в любом месте, допустим, это будет версия для Apache. Добавляем в нее:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">disable_functions=popen,exec,system,passthru,proc_open,shell_exec</div></div>
<p>Это серьезно усложнит жизнь злоумышленнику на пути повышения привилегий.<br />
И прописываем путь к этому php.ini в httpd.conf:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">PHPIniDir /etc/httpd/php.ini</div></div>
<p>Перезапускаем апач и простеньким скриптом проверяем что получилось:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;?php<br />
system('ls -la');<br />
?&gt;</div></div>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2011/02/02/raznye-php-ini-dlya-apache-i-konsolnykh-skriptov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Оптимизация использования памяти для Apache</title>
		<link>http://unix-notes.ru/2010/10/06/optimizaciya-ispolzovaniya-pamyati-dlya-apache/</link>
		<comments>http://unix-notes.ru/2010/10/06/optimizaciya-ispolzovaniya-pamyati-dlya-apache/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 06:16:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=625</guid>
		<description><![CDATA[Памяти никогда много не бывает. И по мере роста трафика сервер может начать свопиться, а это очень плохо. Посмотрим что же можно сделать: Во-первых, сначала надо убедиться, что перед апачем установлен nginx (ну или лайти) и он отдает напрямую всю статику: графику, видео, js, css, какие-либо архивы и прочее. Для контроля очень удобно воспользоваться встроенными [...]]]></description>
			<content:encoded><![CDATA[<p>Памяти никогда много не бывает. И по мере роста трафика сервер может начать свопиться, а это очень плохо. Посмотрим что же можно сделать:</p>
<ul>
<li>Во-первых, сначала надо убедиться, что перед апачем установлен nginx (ну или лайти) и он отдает напрямую всю статику: графику, видео, js, css, какие-либо архивы и прочее. Для контроля очень удобно воспользоваться встроенными возможностями апача просмотра статуса:
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;Location /server-status&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; SetHandler server-status<br />
&lt;/Location&gt;<br />
ExtendedStatus On</div></div>
</li>
<li>Обязательно нужно внимательно пройтись по конфигу апача и закомментировать загрузку неиспользуемых модулей</li>
<li>Так же нужно проконтролировать, чтобы максимальное одновременное количество клиентов апача не превышало объема установленной на сервере памяти. Просто делим общее количество памяти на количество занимаемое одним процессом апача за минусом памяти под mysql и прочее. Иначе система уйдет в своп и катастрофически деградирует.
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">StartServers &nbsp; &nbsp; &nbsp; 3<br />
MinSpareServers &nbsp; &nbsp;3<br />
MaxSpareServers &nbsp; 5<br />
ServerLimit &nbsp; &nbsp; &nbsp;12<br />
MaxClients &nbsp; &nbsp; &nbsp; 12</div></div>
</li>
<li>Так же можно поставить MaxRequestsPerChild  поменьше (~500) чтобы форки апача почаще перезапускались и освобождали память.</li>
<li>Если используется Eaccelerator, то надо проверить что eaccelerator.shm_size не очень большое, = &#8220;64&#8243; вполне подойдет</li>
<li>Если ничего не помогает, то нужно попытаться определить какой из виртуалхостов самый прожорливый. Можно просто по очереди тестировать сайты на сервере при помощи <noindex><a rel="nofollow" target="_blank" href="http://loadimpact.com/">loadimpact</a></noindex> и наблюдать за нагрузкой. Скорее всего найдется код создающий максимальную нагрузку по памяти. Далее можно пойти путем оптимизации кода либо попрбовать перенести именно этот виртуалхост на php в режиме fast cgi.</li>
<li>Так же нужно не забывать про возможность просто взять более мощный сервер. Благо, например, у Hetzner за смешные деньги можно арендовать сервер с 8 и более ГБ памяти. Часто это может оказаться самым &#8220;дешовым&#8221; решением.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2010/10/06/optimizaciya-ispolzovaniya-pamyati-dlya-apache/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Расследование странного глюка с HTTP Basic авторизацией</title>
		<link>http://unix-notes.ru/2010/02/10/rassledovanie-strannogo-glyuka-s-http-basic-avtorizaciejj/</link>
		<comments>http://unix-notes.ru/2010/02/10/rassledovanie-strannogo-glyuka-s-http-basic-avtorizaciejj/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 12:32:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[DirectAdmin]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=565</guid>
		<description><![CDATA[Иногда бывают такие ситуации, когда несколько глюков наложившись один на другой составляют проблему весьма и весьма загадочную на первый взгляд. Ситуация была такая: Проводился перенос сайтов с ВПС-а (на LAMP платформе) на дедик с таким же LAMP только еще с DirectAdmin-ом. Контент сайтов и базы данных были перенесены на новый хост. На одном из сайтов [...]]]></description>
			<content:encoded><![CDATA[<p>Иногда бывают такие ситуации, когда несколько глюков наложившись один на другой составляют проблему весьма и весьма загадочную на первый взгляд.<br />
Ситуация была такая:<br />
Проводился перенос сайтов с ВПС-а (на LAMP платформе) на дедик с таким же LAMP только еще с DirectAdmin-ом. Контент сайтов и базы данных были перенесены на новый хост. На одном из сайтов был установлен WordPress и в подпапке /st/ некий скрипт доступ к которому был ограничен в файле .htaccess лежащем в той же папке. Вот содержимое того .htaccess</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Order allow,deny<br />
Allow from all<br />
AuthType Basic<br />
AuthName &quot;admin&quot;<br />
AuthUserFile /home/username/domains/domain.com/public_html/st/.htpasswd<br />
Require valid-user</div></div>
<p>Вроде все очень просто и правильно. Но, при попытке доступа к domain.com/st/ мы стабильно получаем ошибку &#8220;404 &#8211; File Not Found&#8221; и отсутствие какого либо запроса на авторизацию. В логах этого виртуалхоста никаких ошибок, только 404 ответы. Все пути проверены и перепроверены. Авторизационные модули апача точно присутствуют:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">apachectl -M |grep auth<br />
&nbsp;authn_file_module (static)<br />
Syntax OK<br />
&nbsp;authn_default_module (static)<br />
&nbsp;authz_host_module (static)<br />
&nbsp;authz_groupfile_module (static)<br />
&nbsp;authz_user_module (static)<br />
&nbsp;authz_default_module (static)<br />
&nbsp;auth_basic_module (static)</div></div>
<p>В конфигах апача точно разрешено переопределение директив для этой папки AllowOverride All.<br />
Расследование вывело на .htaccess лежащий в корне этого сайта и строки от вордпресса:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteCond %{REQUEST_FILENAME} -f [OR]<br />
RewriteCond %{REQUEST_FILENAME} -d<br />
RewriteRule . - [L]<br />
RewriteRule &nbsp;^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]<br />
RewriteRule &nbsp;^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]<br />
RewriteRule . index.php [L]</div></div>
<p>Комментируя последнюю строчку мы получали работающую авторизацию. Но при чем тут она?! =)<br />
Пытался отключать наследование работы mod_rewrite прописывая в &#8220;нижний&#8221; .htaccess директив RewriteEngine Off &#8211; не помогало. Да и на старом ВПС-е все работало. Очень странно.<br />
Для уточнения работы правил реврайта пришлось в виртуалхост добавить директивы:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteLog &quot;/var/log/httpd/rewrite.log&quot;<br />
RewriteLogLevel 3</div></div>
<p>Оказалось, что при открытии проблемного УРЛ mod_rewrite пытался преобразовать адрес uri &#8217;401.shtml&#8217;. Что и указало на суть проблемы. А проблема на самом деле была в том, что при переносе сайта из ДиректАдминовского каталога /public_html были удалены дефолтные файлы &#8211; обработчики ошибок:<br />
400.shtml, 401.shtml, 403.shtml &#8230; которые были назначены в конфиге апача обработчиками соответствующих ошибок. И происходило следующее: при запросе проблемного урла апач отвечал 401 &#8211; как и должен был,  и пытался отдать страницу 401.shtml, но так как она была удалена .htaccess из корня сайта преобразовывал запрос на вордпрессовый index.php отдавая 404 из-за отсутствующего 401.shtml.<br />
Возвращение на место *.shtml файлов вернуло все в работающее состояние.<br />
Мораль: изменять дефолтные настройки всяких сложных панелей нужно очень аккуратно.</p>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2010/02/10/rassledovanie-strannogo-glyuka-s-http-basic-avtorizaciejj/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Проблемы со статистикой (webalizer) в DirectAdmin</title>
		<link>http://unix-notes.ru/2009/08/13/problemy-so-statistikojj-webalizer-v-directadmin/</link>
		<comments>http://unix-notes.ru/2009/08/13/problemy-so-statistikojj-webalizer-v-directadmin/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 10:11:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[DirectAdmin]]></category>
		<category><![CDATA[webalizer]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=456</guid>
		<description><![CDATA[Иногда бывает, что ДиректАдмин по каким-то причинам не считает статистику по доменам. Вот несколько пунктов по которым это может происходить: отсутствует библиотека GD. Симптом: &#8220;ebalizer: error while loading shared libraries: libgd.so.2: cannot open shared object file: No such file or directory&#8221;. Чтобы починить: yum install gd Не установлен или не работает crond. Чтобы починить: yum [...]]]></description>
			<content:encoded><![CDATA[<p>Иногда бывает, что ДиректАдмин по каким-то причинам не считает статистику по доменам. Вот несколько пунктов по которым это может происходить:</p>
<ul>
<li>отсутствует библиотека GD. Симптом: &#8220;ebalizer: error while loading shared libraries: libgd.so.2: cannot open shared object file: No such file or directory&#8221;. Чтобы починить:
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">yum install gd</div></div>
</li>
<li>Не установлен или не работает crond. Чтобы починить:
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">yum -y install vixie-cron<br />
service crond start<br />
chkconfig crond on</div></div>
</li>
<li>Не прописан создатель домена. Например, в общем случае, в /usr/local/directadmin/data/users/admin/users.list должны быть прописаны все пользователи DirectAdmin-а</li>
<li>Сам webalizer не корректно собран. Для проверки просто запускаем webalizer и смотрим не появятся ли ошибки.</li>
<li>Анализ логов отключен в directadmin.conf. Чтобы починить ищем и исправляем в directadmin.conf строки:
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">webalizer=0<br />
rotation=0</div></div>
</li>
<li>Какие либо проблемы в самом webalizer. Чтобы проверить это запускаем обсчет статистики вручную для конкретного домена:
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/usr/bin/webalizer -p -n domain -o /home/user/domains/domain.com/stats /var/log/httpd/domains/domain.com.log</div></div>
</li>
<li>Логи апача по каким-либо причинам не пишутся для этого домена. Проверяем здесь /var/log/httpd/domains/domain.com.log</li>
</ul>
<p>Чтобы проверить статистику делаем:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">echo &quot;action=tally&amp;value=all&quot; &gt;&gt; /usr/local/directadmin/data/task.queue</div></div>
<p>и смотрим /var/log/directadmin/system.log &#038; /var/log/directadmin/error.log</p>
<p>Еще фишка с настройками вебалайзера. По дефолту, используются умолчальные настройки и они забиты в бинарник ДиректАдмина.<br />
Чтобы кастомизировать настройки webalizer надо создать конфиг в /usr/local/directadmin/data/templates/custom/webalizer.conf и поместить туда директивы, которые должны отличаться от дефолтных, например:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">AllReferrers &nbsp; &nbsp;yes</div></div>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2009/08/13/problemy-so-statistikojj-webalizer-v-directadmin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>suPHP для PHP под Apache</title>
		<link>http://unix-notes.ru/2009/08/04/suphp-dlya-php-pod-apache/</link>
		<comments>http://unix-notes.ru/2009/08/04/suphp-dlya-php-pod-apache/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 14:02:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[suphp]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=452</guid>
		<description><![CDATA[Если по простому,то suPHP это штука, которая позволяет выполнять PHP-скрипты под Apache с правами их владельца, а не с правами веб-сервера. Это бывает необходимо если на сервере несколько пользователей (например, фтп), они активно меняют контент сайтов, но веб-серверу тоже нужен доступ к этим файлам. Тут то и происходит конфликт владельцев. suPHP есть и в портах [...]]]></description>
			<content:encoded><![CDATA[<p>Если по простому,то <noindex><a rel="nofollow" target="_blank" href="http://www.suphp.org/">suPHP</a></noindex> это штука, которая позволяет выполнять PHP-скрипты под Apache с правами их владельца, а не с правами веб-сервера. Это бывает необходимо если на сервере несколько пользователей (например, фтп), они активно меняют контент сайтов, но веб-серверу тоже нужен доступ к этим файлам. Тут то и происходит конфликт владельцев.<br />
suPHP есть и в портах для FreeBSD:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">cd /usr/ports/www/suphp &amp;&amp; make install clean</div></div>
<p>и в пакетах для CentOS:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">yum install mod_suphp</div></div>
<p>Запускается как обычный модуль для апача:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">LoadModule php5_module libexec/apache2/libphp5.so<br />
LoadModule suphp_module libexec/apache2/mod_suphp.so</div></div>
<p>Конфиги в файле suphp.conf</p>
<p>Внимательнее к параметрам:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">; Security options<br />
allow_file_group_writeable=false<br />
allow_file_others_writeable=false<br />
allow_directory_group_writeable=false<br />
allow_directory_others_writeable=false</div></div>
<p>Из-за них может посыпаться много ошибок.</p>
<p>Для активации надо прописать либо в глобальной секции httpd.conf, либо в конкретном виртуал-хосте:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">suPHP_Engine on<br />
suPHP_AddHandler application/x-httpd-php</div></div>
<p>Не путать с модулем для апача <noindex><a rel="nofollow" target="_blank" href="http://httpd.apache.org/docs/2.2/suexec.html">suexec</a></noindex>!</p>
<p>Замечен такой косяк: если надо запускать что-то через exec и по относительному пути исполняемый файл не находится, то надо убедится, что в suphp.conf прописано с кавычками!</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">env_path=&quot;/bin:/usr/bin&quot;</div></div>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2009/08/04/suphp-dlya-php-pod-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Закачка больших файлов через PHP</title>
		<link>http://unix-notes.ru/2009/07/07/zakachka-bolshikh-fajjlov-cherez-php/</link>
		<comments>http://unix-notes.ru/2009/07/07/zakachka-bolshikh-fajjlov-cherez-php/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 09:38:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=413</guid>
		<description><![CDATA[Вот что нужно поправить: Во-первых, в nginx.conf надо client_max_body_size 20m; Иначе если запрос не будет пролазить в этот лимит nginx покажет 413 Request Entity Too Large для некоторых браузеров или просто сбросит соединение. В apache убедиться что не определено LimitRequestBody или имеет подходящий лимит. Если установлен mod_security то проверить еще SecRequestBodyLimit. И наконец, в php.ini: [...]]]></description>
			<content:encoded><![CDATA[<p>Вот что нужно поправить:<br />
Во-первых, в nginx.conf надо</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">client_max_body_size 20m;</div></div>
<p>Иначе если запрос не будет пролазить в этот лимит nginx покажет 413 Request Entity Too Large для некоторых браузеров или просто сбросит соединение.</p>
<p>В apache убедиться что не определено LimitRequestBody или имеет подходящий лимит. Если установлен mod_security то проверить еще SecRequestBodyLimit.</p>
<p>И наконец, в php.ini:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">post_max_size = 20M<br />
upload_max_filesize = 20M</div></div>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2009/07/07/zakachka-bolshikh-fajjlov-cherez-php/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Простая настройка SSL в Apache</title>
		<link>http://unix-notes.ru/2009/07/01/prostaya-nastrojjka-ssl-v-apache/</link>
		<comments>http://unix-notes.ru/2009/07/01/prostaya-nastrojjka-ssl-v-apache/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 13:18:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[apach]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=399</guid>
		<description><![CDATA[Сертификаты бывают на один домен (будет работать только для mydomain.com или только для www.mydomain.com) и мультидоменные (*.mydomain.com). Мультидоменные стоят много дороже. В нашем случае рассматриваются сертификаты на один домен. Генерим закрытый ключ и запрос на сертификат: openssl genrsa –des3 –out mydomain.com.key 1024 openssl req -new -key mydomain.com.key -out mydomain.com.csr Самое важное это указать Common name [...]]]></description>
			<content:encoded><![CDATA[<p>Сертификаты бывают на один домен (будет работать только для mydomain.com или только для www.mydomain.com) и мультидоменные (*.mydomain.com). Мультидоменные стоят много дороже. В нашем случае рассматриваются сертификаты на один домен.<br />
Генерим закрытый ключ и запрос на сертификат:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">openssl genrsa –des3 –out mydomain.com.key 1024<br />
openssl req -new -key mydomain.com.key -out mydomain.com.csr</div></div>
<p>Самое важное это указать Common name = mydomain.com. Остальные поля не так важны. Всякие Optional-поля лучше вообще не указывать.<br />
На данном этапе если хотим подписать сертификат доверенным центром сертификации то отправляем им mydomain.com.csr. А если будем подписывать сами, то:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">openssl x509 -req -days 365 -in mydomain.com.csr -signkey mydomain.com.key -out mydomain.com.crt</div></div>
<p>И базовый ssl.conf для примера:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">SSLRandomSeed startup file:/dev/urandom 512<br />
SSLRandomSeed connect file:/dev/urandom 512<br />
<br />
Listen 443<br />
<br />
AddType application/x-x509-ca-cert .crt<br />
AddType application/x-pkcs7-crl &nbsp; &nbsp;.crl<br />
# If you use secret phrase<br />
SSLPassPhraseDialog &nbsp;exec:/usr/local/etc/apache2/certs/domain.com.pass<br />
SSLSessionCache &nbsp; &nbsp; &nbsp; &nbsp; dbm:/var/run/ssl_scache<br />
SSLSessionCacheTimeout &nbsp;300<br />
SSLMutex &nbsp;file:/var/run/ssl_mutex<br />
<br />
&lt;VirtualHost 192.168.0.1:443&gt;<br />
&lt;Directory /home/domain.com/htdocs&gt;<br />
&nbsp; &nbsp; Order Allow,Deny<br />
&nbsp; &nbsp; Allow from all<br />
&lt;/Directory&gt;<br />
<br />
DocumentRoot &quot;/home/domain.com/htdocs&quot;<br />
ServerName domain.com:443<br />
ServerAdmin you@example.com<br />
ErrorLog /home/logs/httpsd-error.log<br />
TransferLog /home/logs/httpsd-access.log<br />
SSLEngine on<br />
<br />
SSLProtocol -all +TLSv1 +SSLv3<br />
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM<br />
<br />
SSLCertificateFile /usr/local/etc/apache2/certs/domain.com.crt<br />
SSLCertificateKeyFile /usr/local/etc/apache2/certs/domain.com.key<br />
<br />
&lt;FilesMatch &quot;\.(cgi|shtml|phtml|php3?)$&quot;&gt;<br />
&nbsp; &nbsp; SSLOptions +StdEnvVars<br />
&lt;/FilesMatch&gt;<br />
&lt;Directory &quot;/home/domain.com/htdocs&quot;&gt;<br />
&nbsp; &nbsp; SSLOptions +StdEnvVars<br />
&lt;/Directory&gt;<br />
<br />
SetEnvIf User-Agent &quot;.*MSIE.*&quot; \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nokeepalive ssl-unclean-shutdown \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;downgrade-1.0 force-response-1.0<br />
<br />
CustomLog /home/logs/httpd-ssl_request.log \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \&quot;%r\&quot; %b&quot;<br />
<br />
&lt;/VirtualHost&gt;</div></div>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2009/07/01/prostaya-nastrojjka-ssl-v-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Простая настройка SSL на Apache</title>
		<link>http://unix-notes.ru/2009/07/01/prostaya-nastrojjka-ssl-na-apache/</link>
		<comments>http://unix-notes.ru/2009/07/01/prostaya-nastrojjka-ssl-na-apache/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 13:13:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=397</guid>
		<description><![CDATA[Генерим закрытый ключ и запрос на сертификат. openssl genrsa –des3 –out mydomain.com.key 1024 openssl req -new -key mydomain.com.key -out mydomain.com.csr Когда генерим CSR то не надо указывать e-mail, challenge password и дополнительные опции. Если мы хотим подписать сертификат доверенным центром сертификации, то отправляем им mydomain.com.csr. Если же будем подписывать сами то: openssl x509 -req -days [...]]]></description>
			<content:encoded><![CDATA[<p>Генерим закрытый ключ и запрос на сертификат.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">openssl genrsa –des3 –out mydomain.com.key 1024<br />
openssl req -new -key mydomain.com.key -out mydomain.com.csr</div></div>
<p>Когда генерим CSR то не надо указывать e-mail, challenge password и дополнительные опции.<br />
Если мы хотим подписать сертификат доверенным центром сертификации, то отправляем им mydomain.com.csr. Если же будем подписывать сами то:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">openssl x509 -req -days 365 -in mydomain.com.csr -signkey mydomain.com.key -out mydomain.com.crt</div></div>
<p>И базовый ssl.conf для примера:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">SSLRandomSeed startup file:/dev/urandom 512<br />
SSLRandomSeed connect file:/dev/urandom 512<br />
<br />
Listen 443<br />
<br />
AddType application/x-x509-ca-cert .crt<br />
AddType application/x-pkcs7-crl &nbsp; &nbsp;.crl<br />
# If you use secret phrase<br />
SSLPassPhraseDialog &nbsp;exec:/usr/local/etc/apache2/certs/domain.com.pass<br />
SSLSessionCache &nbsp; &nbsp; &nbsp; &nbsp; dbm:/var/run/ssl_scache<br />
SSLSessionCacheTimeout &nbsp;300<br />
SSLMutex &nbsp;file:/var/run/ssl_mutex<br />
<br />
&lt;VirtualHost 192.168.0.1:443&gt;<br />
&lt;Directory /home/domain.com/htdocs&gt;<br />
&nbsp; &nbsp; Order Allow,Deny<br />
&nbsp; &nbsp; Allow from all<br />
&lt;/Directory&gt;<br />
<br />
DocumentRoot &quot;/home/domain.com/htdocs&quot;<br />
ServerName secure.domain.com:443<br />
ServerAdmin you@example.com<br />
ErrorLog /home/logs/httpsd-error.log<br />
TransferLog /home/logs/httpsd-access.log<br />
SSLEngine on<br />
<br />
SSLProtocol -all +TLSv1 +SSLv3<br />
SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM<br />
<br />
SSLCertificateFile /usr/local/etc/apache2/certs/domain.com.crt<br />
SSLCertificateKeyFile /usr/local/etc/apache2/certs/domain.com.key<br />
<br />
&lt;FilesMatch &quot;\.(cgi|shtml|phtml|php3?)$&quot;&gt;<br />
&nbsp; &nbsp; SSLOptions +StdEnvVars<br />
&lt;/FilesMatch&gt;<br />
&lt;Directory &quot;/home/domain.com/htdocs&quot;&gt;<br />
&nbsp; &nbsp; SSLOptions +StdEnvVars<br />
&lt;/Directory&gt;<br />
<br />
SetEnvIf User-Agent &quot;.*MSIE.*&quot; \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nokeepalive ssl-unclean-shutdown \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;downgrade-1.0 force-response-1.0<br />
<br />
CustomLog /home/logs/httpd-ssl_request.log \<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \&quot;%r\&quot; %b&quot;<br />
<br />
&lt;/VirtualHost&gt;</div></div>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2009/07/01/prostaya-nastrojjka-ssl-na-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Установка nginx на сервер с DirectAdmin</title>
		<link>http://unix-notes.ru/2009/04/29/ustanovka-nginx-na-server-s-directadmin/</link>
		<comments>http://unix-notes.ru/2009/04/29/ustanovka-nginx-na-server-s-directadmin/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 09:09:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[DirectAdmin]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=327</guid>
		<description><![CDATA[Иногда бывает необходимо поставить nginx перед апачем на сервере с уже установленным DirectAdmin-ом. И тут есть несколько варинтов: Перевесить апач на 127.0.0.1, а nginx на все внешние адреса. Но для этого прийдется править конфиги всех сайтов + темплейты для создания новых хостов в ДиректАдмине (шаблоны лежат тут $DIRECTADMIN_HOME/data/templates/). Так же этот вариант опасен тем, что [...]]]></description>
			<content:encoded><![CDATA[<p>Иногда бывает необходимо поставить nginx перед апачем на сервере с уже установленным DirectAdmin-ом. И тут есть несколько варинтов:</p>
<ul>
<li>Перевесить апач на 127.0.0.1, а nginx на все внешние адреса. Но для этого прийдется править конфиги всех сайтов + темплейты для создания новых хостов в ДиректАдмине (шаблоны лежат тут $DIRECTADMIN_HOME/data/templates/). Так же этот вариант опасен тем, что если что-то пойдет не так, то сайты будут не доступны некоторое время.</li>
<li>Перевесить апач на другой порт, а nginx на 80. В этом варианте тоже прийдется править шаблоны.</li>
<li>Ну и самый удобный вариант это просто добавить новый ip на сервер, но не добавлять его в ДиректАдмин. Повесить на этот ип nginx и уже на него перевести днс-ы тех доменов, которые больше всего грузят сервер. После добавления ип-а и
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/etc/init.d/network restart</div></div>
<p>не забыть сделать</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/etc/init.d/startips start</div></div>
</li>
</ul>
<p>И в /etc/httpd/conf/httpd.conf заменить</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Listen 80</div></div>
<p>на</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Listen 1.1.1.1:80<br />
Listen 1.1.1.2:80</div></div>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2009/04/29/ustanovka-nginx-na-server-s-directadmin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Фильтрация по GeoIP через .htaccess</title>
		<link>http://unix-notes.ru/2009/04/16/filtraciya-po-geoip-cherez-htaccess/</link>
		<comments>http://unix-notes.ru/2009/04/16/filtraciya-po-geoip-cherez-htaccess/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 09:47:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[GeoIP]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=320</guid>
		<description><![CDATA[После установки GeoIP на Апач можно использовать следующие варианты для фильтрации трафика в .htaccess на основании гео-информации: Для блокировки подключений из России и Китая SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry Deny from env=BlockCountry Перенаправление трафика из Китая на гугл RewriteEngine on RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CN$ RewriteRule ^(.*)$ http://www.google.com$1 [L]]]></description>
			<content:encoded><![CDATA[<p>После <a href="http://unix-notes.ru/2008/12/09/geoip-apache/">установки GeoIP</a> на Апач можно использовать следующие варианты для фильтрации трафика в .htaccess на основании гео-информации:</p>
<p>Для блокировки подключений из России и Китая</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry<br />
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry<br />
Deny from env=BlockCountry</div></div>
<p>Перенаправление трафика из Китая на гугл</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteEngine on<br />
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CN$<br />
RewriteRule ^(.*)$ http://www.google.com$1 [L]</div></div>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2009/04/16/filtraciya-po-geoip-cherez-htaccess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

