<?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; nginx</title>
	<atom:link href="http://unix-notes.ru/category/nginx/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>Кэширование в nginx</title>
		<link>http://unix-notes.ru/2011/03/24/kehshirovanie-v-nginx/</link>
		<comments>http://unix-notes.ru/2011/03/24/kehshirovanie-v-nginx/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 06:50:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=664</guid>
		<description><![CDATA[Включение кэширования средствами nginx позволяет повысить скорость отдачи часто используемых страниц в очень много раз. Фишка в том, что сгенерированная апачем страница сохраняется в виде готового html-файла на диске и при поступлении запроса на такой же урл (совпадение по md5) файл-кэш быстро отдается клиенту. Кэширование в nginx доступно с версии 0.7.44. Благо в репозитории EPEL [...]]]></description>
			<content:encoded><![CDATA[<p>Включение кэширования средствами nginx позволяет повысить скорость отдачи часто используемых страниц в очень много раз. Фишка в том, что сгенерированная апачем страница сохраняется в виде готового html-файла на диске и при поступлении запроса на такой же урл (совпадение по md5) файл-кэш быстро отдается клиенту. Кэширование в nginx доступно с версии 0.7.44. Благо в репозитории EPEL уже штатно присутствует 0.8.<br />
К настройке кэширования нужно относиться очень внимательно, потому что на динамических сайтах весьма высока вероятность обрубания функциональности сайта: перестанут работать корзины на сайтах-магазинах, поломаются счетчики просмотров и тд.<br />
Самая простая настройка выглядит так:<br />
Сначала в http-секции прописываем где будет лежать кэш, его размер и время устаревания:</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">proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=myzone:16m inactive=7d max_size=1024m;</div></div>
<p>Чистить кэш nginx будет сам. Кстати, в процессе отладки вы можете просто ходить в эту папку и смотреть что там закэшировалось.<br />
Кэш можно включить либо для определенного location либо для всего виртуального хоста.</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">proxy_no_cache $cookie_logged; #условия, при которых ответ не будет сохраняться в кэш<br />
proxy_cache_bypass $cookie_logged; #условия, при которых ответ не будет браться из кэша<br />
proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;<br />
proxy_pass_header Set-Cookie;#разрешает передавать от проксируемого сервера клиенту запрещённые для передачи строки<br />
proxy_ignore_headers &quot;Expires&quot; &quot;Cache-Control&quot;; #запрещает обработку некоторых строк заголовка из ответа проксированного сервера<br />
proxy_cache_valid 200 301 302 304 1h; #время кэширования для разных ответов<br />
proxy_cache myzone; #включает кэширование и задает зону</div></div>
<p>В процессе настройки посмотрите какие куки и в какой момент отправляет пользователю ваше приложение.<br />
В интернете можно найти готовые конфиги nginx-а для кэширования под различные популярные CMS.<br />
&#8220;Тупой&#8221; вариант кэширования с большим сроком устаревания кэша можно использовать в момент DDOS-а, тогда есть шанс, что сервер справится с наплывом запросов и сайт хоть и потеряет в функциональности, но останется доступен для поисковых систем и не уронит в след за собой остальные сайты на этом сервере.</p>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2011/03/24/kehshirovanie-v-nginx/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Настройка SSL в nginx</title>
		<link>http://unix-notes.ru/2009/12/09/nastrojjka-ssl-v-nginx/</link>
		<comments>http://unix-notes.ru/2009/12/09/nastrojjka-ssl-v-nginx/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 13:49:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=527</guid>
		<description><![CDATA[В nginx настроить SSL для домена еще проще чем в Апаче. Для начала генерим закрытый ключ, запрос на сертификат и подписываем его как указано в статье настройка SSL на Apache Теперь конфиг: server { &#160; &#160; &#160; &#160; listen 1.2.3.1:443; &#160; &#160; &#160; &#160; keepalive_timeout &#160; &#160;70; &#160; &#160; &#160; &#160; server_name .domain.com; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>В nginx настроить SSL для домена еще проще чем в Апаче. Для начала генерим закрытый ключ, запрос на сертификат и подписываем его как указано в статье <a href="http://unix-notes.ru/2009/07/01/prostaya-nastrojjka-ssl-v-apache/">настройка SSL на Apache</a></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">server {<br />
&nbsp; &nbsp; &nbsp; &nbsp; listen 1.2.3.1:443;<br />
&nbsp; &nbsp; &nbsp; &nbsp; keepalive_timeout &nbsp; &nbsp;70;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; server_name .domain.com;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; ssl &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;on;<br />
&nbsp; &nbsp; &nbsp; &nbsp; ssl_protocols &nbsp; &nbsp; &nbsp; &nbsp;SSLv3 TLSv1;<br />
&nbsp; &nbsp; &nbsp; &nbsp; ssl_ciphers &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;<br />
&nbsp; &nbsp; &nbsp; &nbsp; ssl_certificate &nbsp; &nbsp; &nbsp;/etc/nginx/vhosts/www.domain.crt;<br />
&nbsp; &nbsp; &nbsp; &nbsp; ssl_certificate_key &nbsp;/etc/nginx/vhosts/www.domain.key;<br />
&nbsp; &nbsp; &nbsp; &nbsp; ssl_session_cache &nbsp; &nbsp;shared:SSL:10m;<br />
&nbsp; &nbsp; &nbsp; &nbsp; ssl_session_timeout &nbsp;20m;<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; location ~* \.(JPG|jpg|jpeg|gif|png|ico|zip|doc|gz|rar|bz2|swf|avi|mpg|vmw|wmv|mpeg|mkv|js)$ {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; root /usr/local/www/domain.com;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; expires max;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; location / {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy_pass &nbsp; &nbsp; &nbsp; &nbsp; http://127.0.0.1:80/;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy_redirect &nbsp; &nbsp; off;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header &nbsp; Host &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $host;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header &nbsp; X-Real-IP &nbsp; &nbsp; &nbsp; &nbsp;$remote_addr;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header &nbsp; X-Forwarded-For $remote_addr;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; }</div></div>
<p>Нюансы такие:<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 rsa -in key.pem -out keyout.pem</div></div>
<p>Ну и если вы делаете нормальные подписанные авторитетными CA сертификаты уникальные для каждого домена, то не забыть вешать каждый домен на отдельный ип.<br />
На апаче в такой конфигурации вообще ничего изменять не нужно и до апача доходит уже расшифрованный трафик.</p>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2009/12/09/nastrojjka-ssl-v-nginx/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>Установка 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>Быстрая установка awstats для анализа логов nginx</title>
		<link>http://unix-notes.ru/2009/02/03/bystraya-ustanovka-awstats-dlya-analiza-logov-nginx/</link>
		<comments>http://unix-notes.ru/2009/02/03/bystraya-ustanovka-awstats-dlya-analiza-logov-nginx/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 10:12:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[awstats]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=188</guid>
		<description><![CDATA[Ставим awstats из портов или из Yum-а. Теперь надо определиться с логами nginx-а. Тут два варианта: либо логи для всех виртуалхостов пишутся в один файл, либо для каждого хоста в свой. В nginx 0.7 есть функционал позволяющий в директиве access_log использовать переменные. Т.е. например можно сделать так: access_log /var/log/$host-nginx/nginx-access.log В 0.6 так нельзя. Поэтому я [...]]]></description>
			<content:encoded><![CDATA[<p>Ставим awstats из портов или из Yum-а.<br />
Теперь надо определиться с логами nginx-а. Тут два варианта: либо логи для всех виртуалхостов пишутся в один файл, либо для каждого хоста в свой. В nginx 0.7 есть функционал позволяющий в директиве access_log использовать переменные. Т.е. например можно сделать так:</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">access_log /var/log/$host-nginx/nginx-access.log</div></div>
<p>В 0.6 так нельзя. Поэтому я буду рассматривать вариант, когда лог-файл один и общий.<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">log_format &nbsp;main &nbsp;'$host $remote_addr [$time_local] &quot;$request&quot; $status $body_bytes_sent &quot;$http_referer&quot; &quot;$http_user_agent&quot;';<br />
access_log /var/log/nginx/nginx-access.log main;</div></div>
<p>Теперь создаем конфиг awstats-а для каждого виртуалхоста на базе дефолтового образца.<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">LogFile=&quot;/var/log/nginx/nginx-access.log&quot;<br />
LogType=W<br />
LogFormat = &quot;%virtualname %host %time1 %methodurl %code %bytesd %refererquot %uaquot&quot;<br />
LogSeparator=&quot; &quot;</div></div>
<p>и параметры SiteDomain, HostAliases.<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">LoadPlugin=&quot;geoip GEOIP_STANDARD /usr/local/share/GeoIP/GeoIP.dat&quot;</div></div>
<p>И поставить порты: GeoIP-1.4.4_1, p5-Geo-IP-1.36 (Linux: geoip.x86_64, perl-Geo-IP.x86_64)</p>
<p>Теперь создаем и добавляем в кронтаб файлик awstats_run.sh с такими строками:</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">#!/bin/sh<br />
/usr/share/awstats/tools/awstats_buildstaticpages.pl -config=domain -dir=/home/awstats/domain.com -static -update</div></div>
<p>Не забыть включить ротацию логов Nginx. Пример для newsyslog.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">/var/log/nginx/nginx-access.log &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 640 &nbsp;7 &nbsp; &nbsp; * &nbsp; &nbsp;@T00 &nbsp;Z &nbsp; &nbsp; &nbsp; &nbsp;/var/run/nginx.pid &nbsp;30</div></div>
<p>Если дело происходит на Linux и надо настроить logrotate, то можно сделать ротацию и обсчет логов по другому:<br />
Правим Logrotate-конфиг Nginx:</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">/var/log/nginx/*log {<br />
&nbsp; &nbsp; rotate 10<br />
&nbsp; &nbsp; size=100M<br />
&nbsp; &nbsp; missingok<br />
&nbsp; &nbsp; notifempty<br />
&nbsp; &nbsp; compress<br />
&nbsp; &nbsp; sharedscripts<br />
&nbsp; &nbsp; prerotate<br />
&nbsp; &nbsp; /etc/awstats/awstats_run.sh<br />
&nbsp; &nbsp; endscript<br />
&nbsp; &nbsp; postrotate<br />
&nbsp; &nbsp; &nbsp; &nbsp; [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`<br />
&nbsp; &nbsp; endscript<br />
}</div></div>
<p>Небольшой минус &#8211; ротация будет не точно посуточная.</p>
<p>Если надо подключить к awstats много доменов, то можно воспользоваться этим скриптом, предварительно создав конфиг-образец awstats.domain.com.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">#!/usr/local/bin/bash<br />
CONFIG=&quot;/usr/local/etc/awstats&quot;<br />
OUTPUT=&quot;/home/domains/sampledomain.com/awstats&quot;<br />
<br />
if [ &quot;x$1&quot; = &quot;x&quot; ]; then<br />
&nbsp; &nbsp; echo &quot;Usage: $0 domain.com&quot;<br />
&nbsp; &nbsp; exit<br />
fi<br />
<br />
sed -e &quot;s/domain.com/$1/g&quot; &quot;$CONFIG/awstats.domain.com.conf&quot; &gt; &quot;$CONFIG/awstats.$1.conf&quot;<br />
echo &quot;/usr/local/www/awstats/tools/awstats_buildstaticpages.pl -config=$1 -dir=$OUTPUT -static -update&quot; &gt;&gt; $CONFIG/awstats_run.sh</div></div>
<p>Если мы будем генерировать статистику для всех сайтов и выкладывать ее на какой то один общий домен, то не забыть отключить дефолтный конфиг для awstats для апача.<br />
Для создания общей страницы статистики для всех сайтов можно использовать эту <noindex><a rel="nofollow" target="_blank" href="http://www.telartis.nl/xcms/awstats">тулзу</a></noindex><br />
В различных ОС и дистрибутивах Linux скрипты awstats устанавливаются в разные места. Это надо проверить вручную запустив пересчет статистики и убедившись в отсутствии ошибок.</p>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2009/02/03/bystraya-ustanovka-awstats-dlya-analiza-logov-nginx/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Конфигурация nginx, не универсальная, freebsd</title>
		<link>http://unix-notes.ru/2009/01/31/konfiguraciya-nginx-ne-universalnaya-freebsd/</link>
		<comments>http://unix-notes.ru/2009/01/31/konfiguraciya-nginx-ne-universalnaya-freebsd/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 13:18:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[nginx]]></category>
		<category><![CDATA[FreeBSD]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=174</guid>
		<description><![CDATA[nginx.conf: user nobody; worker_processes 2; worker_rlimit_nofile 8192; error_log /var/log/nginx/nginx-error.log crit; pid /var/run/nginx.pid; events { &#160; &#160; worker_connections 8192; &#160; &#160; use kqueue; } http { &#160; &#160; include mime.types; &#160; &#160; default_type application/octet-stream; &#160; &#160; #access_log /var/log/nginx/nginx-access.log; &#160; &#160; access_log &#160;off; &#160; &#160; sendfile on; &#160; &#160; tcp_nopush on; &#160; &#160; tcp_nodelay on; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>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">user nobody;<br />
worker_processes 2;<br />
worker_rlimit_nofile 8192;<br />
<br />
error_log /var/log/nginx/nginx-error.log crit;<br />
<br />
pid /var/run/nginx.pid;<br />
<br />
events {<br />
&nbsp; &nbsp; worker_connections 8192;<br />
&nbsp; &nbsp; use kqueue;<br />
}<br />
<br />
http {<br />
&nbsp; &nbsp; include mime.types;<br />
&nbsp; &nbsp; default_type application/octet-stream;<br />
<br />
&nbsp; &nbsp; #access_log /var/log/nginx/nginx-access.log;<br />
&nbsp; &nbsp; access_log &nbsp;off;<br />
<br />
&nbsp; &nbsp; sendfile on;<br />
&nbsp; &nbsp; tcp_nopush on;<br />
&nbsp; &nbsp; tcp_nodelay on;<br />
<br />
&nbsp; &nbsp; keepalive_timeout 65;<br />
&nbsp; &nbsp; client_max_body_size 20m;<br />
<br />
&nbsp; &nbsp; server {<br />
&nbsp; &nbsp; &nbsp; &nbsp; listen 1.2.3.1 default accept_filter=httpready;<br />
&nbsp; &nbsp; &nbsp; &nbsp; server_name foobar;<br />
&nbsp; &nbsp; &nbsp; &nbsp; location / {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; root /var/empty;<br />
&nbsp; &nbsp; &nbsp; &nbsp; }<br />
&nbsp; &nbsp; }<br />
<br />
&nbsp; &nbsp; include /usr/local/etc/nginx/vhosts/*.conf;<br />
}</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">server {<br />
&nbsp; &nbsp; listen 1.2.3.2;<br />
<br />
&nbsp; &nbsp; server_name sample.com www.sample.com;<br />
&nbsp; &nbsp; location ~ /\.ht {<br />
&nbsp; &nbsp; &nbsp; &nbsp; deny &nbsp;all;<br />
&nbsp; &nbsp; }<br />
<br />
&nbsp; &nbsp; location ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {<br />
&nbsp; &nbsp; &nbsp; &nbsp; root /usr/home/domains/sample.com;<br />
expires max;<br />
&nbsp; &nbsp; }<br />
<br />
location / {<br />
&nbsp; &nbsp; &nbsp; &nbsp; proxy_pass &nbsp; &nbsp; &nbsp; &nbsp; http://127.0.0.1:80;<br />
&nbsp; &nbsp; &nbsp; &nbsp; proxy_redirect &nbsp; &nbsp; off;<br />
&nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header &nbsp; Host &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $host;<br />
&nbsp; &nbsp; &nbsp; &nbsp; proxy_set_header &nbsp; X-Real-IP &nbsp; &nbsp; &nbsp; &nbsp;$remote_addr;<br />
&nbsp; &nbsp; &nbsp; &nbsp; client_body_buffer_size &nbsp; &nbsp;128k;<br />
&nbsp; &nbsp; &nbsp; &nbsp; proxy_connect_timeout &nbsp; &nbsp; &nbsp;90;<br />
&nbsp; &nbsp; &nbsp; &nbsp; proxy_send_timeout &nbsp; &nbsp; &nbsp; &nbsp; 90;<br />
&nbsp; &nbsp; &nbsp; &nbsp; proxy_read_timeout &nbsp; &nbsp; &nbsp; &nbsp; 90;<br />
&nbsp; &nbsp; &nbsp; &nbsp; proxy_temp_file_write_size 64k;<br />
&nbsp; &nbsp; }<br />
}</div></div>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2009/01/31/konfiguraciya-nginx-ne-universalnaya-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx, apache, mod_rpaf и не правильное определение прокси</title>
		<link>http://unix-notes.ru/2009/01/18/nginx-apache-mod_rpaf-i-ne-pravilnoe-opredelenie-proksi/</link>
		<comments>http://unix-notes.ru/2009/01/18/nginx-apache-mod_rpaf-i-ne-pravilnoe-opredelenie-proksi/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 12:01:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[mod_rpaf]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=148</guid>
		<description><![CDATA[Если вы используете такую связку, и в nginx присуствуют следующие директивы proxy_set_header &#160; X-Real-IP &#160; &#160; &#160; &#160;$remote_addr; proxy_set_header &#160; &#160;X-Forwarded-For $remote_addr; чтобы пробросить ip пользователя к apache, то некоторые скрипты, работающие под apache из-за заголовка X-Forwarded-For могут считать, что пользователь пришел через прокси. А это не желательно. В таком случае в nginx те два [...]]]></description>
			<content:encoded><![CDATA[<p>Если вы используете такую связку, и в nginx присуствуют следующие директивы</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">proxy_set_header &nbsp; X-Real-IP &nbsp; &nbsp; &nbsp; &nbsp;$remote_addr;<br />
proxy_set_header &nbsp; &nbsp;X-Forwarded-For $remote_addr;</div></div>
<p>чтобы пробросить ip пользователя к apache, то некоторые скрипты, работающие под apache из-за заголовка X-Forwarded-For могут считать, что пользователь пришел через прокси. А это не желательно. В таком случае в nginx те два заголовка надо заменить на:</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">proxy_set_header &nbsp; Test $remote_addr;</div></div>
<p>а в конфиге mod_rpaf сделать так:</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">RPAFenable On<br />
RPAFsethostname On<br />
RPAFproxy_ips 127.0.0.1 внешние ип-ы<br />
RPAFheader Test</div></div>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2009/01/18/nginx-apache-mod_rpaf-i-ne-pravilnoe-opredelenie-proksi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>установка nginx на linux из yum</title>
		<link>http://unix-notes.ru/2009/01/09/ustanovka-nginx-na-linux-iz-yum/</link>
		<comments>http://unix-notes.ru/2009/01/09/ustanovka-nginx-na-linux-iz-yum/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 11:52:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://unix-notes.ru/?p=133</guid>
		<description><![CDATA[Надо лишь добавить репозитарий: rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm или rpm -ihv http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm или скачать rpm напрямую, например: http://download.fedora.redhat.com/pub/epel/5/x86_64/nginx-0.6.33-1.el5.x86_64.rpm]]></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">rpm -ihv http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm</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">rpm -ihv http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm</div></div>
<p>или скачать rpm напрямую, например:</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">http://download.fedora.redhat.com/pub/epel/5/x86_64/nginx-0.6.33-1.el5.x86_64.rpm</div></div>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2009/01/09/ustanovka-nginx-na-linux-iz-yum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>универсальный конфиг nginx</title>
		<link>http://unix-notes.ru/2008/12/09/universalnyjj-konfig-nginx/</link>
		<comments>http://unix-notes.ru/2008/12/09/universalnyjj-konfig-nginx/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 15:50:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://notes.102050.com/?p=108</guid>
		<description><![CDATA[С данным конфигом не надо будет прописывать в nginx каждый сайт. Условимся что сайты лежат в /home/домен-без-www/html user &#160;nobody; worker_processes &#160;4; worker_rlimit_nofile 8192; error_log &#160;/var/log/nginx/nginx-error.log crit; pid &#160; &#160; &#160; &#160;/var/run/nginx.pid; events { worker_connections &#160;2048; # for linux use epoll; # for freebsd # use kqueue; } http { include &#160; &#160; &#160; mime.types; default_type [...]]]></description>
			<content:encoded><![CDATA[<p>С данным конфигом не надо будет прописывать в nginx каждый сайт. Условимся что сайты лежат в /home/домен-без-www/html</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">user &nbsp;nobody;<br />
worker_processes &nbsp;4;<br />
worker_rlimit_nofile 8192;<br />
<br />
error_log &nbsp;/var/log/nginx/nginx-error.log crit;<br />
<br />
pid &nbsp; &nbsp; &nbsp; &nbsp;/var/run/nginx.pid;<br />
<br />
events {<br />
worker_connections &nbsp;2048;<br />
# for linux<br />
use epoll;<br />
# for freebsd<br />
# use kqueue;<br />
}<br />
<br />
http {<br />
include &nbsp; &nbsp; &nbsp; mime.types;<br />
default_type &nbsp;application/octet-stream;<br />
<br />
#access_log &nbsp;/var/log/httpd/nginx-access.log &nbsp;main;<br />
access_log &nbsp;off;<br />
sendfile on;<br />
tcp_nopush on;<br />
tcp_nodelay on;<br />
<br />
keepalive_timeout &nbsp;65;<br />
client_max_body_size &nbsp; &nbsp; &nbsp; 20m;<br />
<br />
gzip &nbsp;on;<br />
gzip_disable &quot;MSIE [1-6]&quot;;<br />
gzip_min_length 1100;<br />
gzip_buffers 4 8k;<br />
gzip_types text/plain text/css text/xml application/x-javascript;<br />
<br />
server {<br />
listen &nbsp; &nbsp; &nbsp; *:80 default;<br />
server_name ~^(.*)$;<br />
<br />
set $p $host;<br />
if ($host ~ www\.(.*)) { set $p $1; }<br />
<br />
location / {<br />
proxy_pass &nbsp; &nbsp; &nbsp; &nbsp; http://127.0.0.1/;<br />
proxy_redirect &nbsp; &nbsp; off;<br />
proxy_set_header &nbsp; Host &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $p;<br />
proxy_set_header &nbsp; X-Real-IP &nbsp; &nbsp; &nbsp; &nbsp;$remote_addr;<br />
proxy_set_header &nbsp; &nbsp;X-Forwarded-For $remote_addr;<br />
}<br />
<br />
location ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|js|swf)$ {<br />
root /home/$p/html;<br />
expires max;<br />
}<br />
}<br />
}</div></div>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2008/12/09/universalnyjj-konfig-nginx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nginx, ограничение скорости по урлу</title>
		<link>http://unix-notes.ru/2008/12/09/nginx-ogranichenie-skorosti-po-urlu/</link>
		<comments>http://unix-notes.ru/2008/12/09/nginx-ogranichenie-skorosti-po-urlu/#comments</comments>
		<pubDate>Tue, 09 Dec 2008 13:29:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[nginx]]></category>

		<guid isPermaLink="false">http://notes.102050.com/?p=57</guid>
		<description><![CDATA[if ( $query_string !~* 'premium=true' ) { &#160; &#160; &#160; &#160;set $limit_rate &#160;120k; &#160; &#160;}]]></description>
			<content:encoded><![CDATA[<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">if ( $query_string !~* 'premium=true' ) {<br />
&nbsp; &nbsp; &nbsp; &nbsp;set $limit_rate &nbsp;120k;<br />
&nbsp; &nbsp;}</div></div>
]]></content:encoded>
			<wfw:commentRss>http://unix-notes.ru/2008/12/09/nginx-ogranichenie-skorosti-po-urlu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

