разработка сайтов в Санкт-Петербурге
создание сайтов в Санкт-Петербурге
вход для клиентов
логин:забыли пароль ?
пароль:

последние статьи

Yandex с блекждеком и шлюхами.
Как то размышляя о способах монетизации различных веб-проектов, я увидел некоторую нестыковку на монетизации посредством контекстной рекламы. А конкретно, в порочности самого Яндекс.Директа не на страницах самой поисковой системы. Суть проектов, направленных на такого рода...
Дефицит идей.
На данный момент в сайтостроении, да и как везде, в общем то, наблюдается некий застой в решениях. Для сайтов это еще как то можно объяснить тем, что технология изготовления сайтов за всю свою историю существования практически не претерпела изменений: HTML с момента выхода...
Flash: построение графика с динамическим обновлением данных.
До того, как я открыл для себя такие веши как Munin и прочие утилиты для отслеживания состояния серверов - я начал изобретать велосипед. Для начала, я захотел сделать монитор load average и написав простейшего демона, который регулярно парсил результат вывода комманды uptime и...
Защита комментариев от спама.
Все люди, которые вели, ведут или собираются вести блоги, форумы или гостевые книги сталкиваются с проблемой спама. Есть масса решений, начиная от капчи, и заканчивая созданием специальных централизованных отстойников для спама, который играют роль антивирусных баз, и при...

реклама

Nginx и Bitrix. Использование их без использования апача.

 Встала тут задача поднять сервер, исключительно под сайты, написанные на базе CMS Bitrix (в силу тормознутости этой CMS, дабы своей прожорливостью она не портила жизнь всем остальным сайтам), и чтобы по максимуму быстро отдавать содержимое Bitrix-овских сайтов, решил, что Apache на сервере нафиг не нужен и что nginx-а будет вполне достаточно. Избавится от апача я решил, не потому, что имею к нему какие то притензии, а по двум причинам, во-первых, для быстрой отдачи статики все равно использовать nginx удобней, а во-вторых, на первом серевере у меня уже использовался nginx в качестве проксирующего сервера, но поскольку админ, ответственный за добавление сайтов, не парился над тем, чтобы прописывать для сайтов в конфиге nginx-а папки со статикой, получилось, что в нем срабатывал конфиг по умолчанию, который, естественно, не знал где эта статика лежит и все равно все запросы переадресовывал апачу. То есть выйгрыш был только на отдаче больших файлов, в этом случае nginx просто отпускал apache, а сам сидел на раздаче контента конечному пользователю. И чтобы не плодить лишних конфигов (к сожалению, структура сайтов была разной и написать один универсальный конфиг для всех не представляется возможным), я решил просто убрать apache вообще. Сказано, сделано. Apache даже не ставился (единственное, что от него было поставлено - это ab для анализа производительности), а к nginx-у PHP был прикручен как FastCGI, благо описаний, как это сделать, в интернете было много. Итак, ставлю тестовый сайт на Bitrix-е - и все работает. Ну вот, думаю, счастье есть. Все, можно отдыхать. Но не тут то было. Мне просто повезло, что этот сайт был без ЧПУ и mod_rewrite от apache там просто не задействовался. Но вот, ставят сайт с ЧПУ и началось. Типовое содержимое .htaccess Битрикса для реализации ЧПУ выглядит следеющим образом:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
</IfModule>

Гугление и чтение доки на сайте nginx-а показало, что конструкция
location / {
root /home/www/domain.name/public_html;
index index.php index.html index.htm;
if (!-e $request_filename) {
rewrite ^(.*)$ /bitrix/urlrewrite.php last;
}
}
легко и непринужденно заменяет всю пачку Apach-евских инструкций для реализации ЧПУ. Но всплыло одно НО. Битрикс после добавления товара в корзину, делает редирект на страницу товара, но не просто на ту же папку, а с какого то перепугу, дописывает в конец пути index.php. То есть, если путь к товару был, к примеру, /e-store/xml_catalog/1067/38608/, то после добавления его в корзину, Битрикс перенаправляет посетителя на /e-store/xml_catalog/1067/38608/index.php. И, ахтунг !!!, if (!-e $request_filename) совершенно игнорирует тот факт, что такой директории не существует, и понятное дело, что в несуществующей директории index.php ну никак не может быть. В итоге, срабатывает описание для файлов PHP:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:1026;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/domain.name/public_html$fastcgi_script_name;
include fastcgi_params;
}
И поскольку такого файла то нет, мы получаем ошибку: No input file specified. Чтобы избежать этого, пришлось вставить проверку на существование файла c расширением php в само описание обработчика FastCGI, и если такого файла не существует, делать редирект на URL, но уже без файла:
location ~ \.php$ {
root /home/www/domain.name/public_html;
if (!-f $request_filename) {
rewrite ^(.*)/index.php$ $1/ redirect;
}
fastcgi_pass 127.0.0.1:1026;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/domain.name/public_html$fastcgi_script_name;
include fastcgi_params;
}

Еще несколько тонкостей - поскольку мы не знаем, существует ли сама директория, то нам надо запускать процесс анализа полученного урла заново, и чтобы это произошло, надо использовать именно флаг redirect, а не last или break. Во-вторых, Битрикс, как выяснилось очень привередлив к наличию слеша в конце URL, и если его там нет, он игнорирует значение последней директории в пути, что приводит к поднятию на уровень выше. То есть если вместо rewrite ^(.*)/index.php$ $1/ redirect; написать rewrite ^(.*)/index.php$ $1 redirect; - вместо описания товара мы попадаем на уровень выше, то есть на список товаров в данной категории.
Оставить отзыв
Ваше имя:
Название
URL
Комментарий:

garviktorgarviktor
Продам/Купить кельтскую Арфу, новая доставка по всей России и СНГ. Есть разные модели подберем любую звоните 8-905-703-56-21 Максим, garant1979@yandex.ru, icq 618261305. Максим

28.07.2010
garviktorgarviktor
Продам/Купить кельтскую Арфу, новая доставка по всей России и СНГ. Есть разные модели подберем любую звоните 8-905-703-56-21 Максим, garant1979@yandex.ru, icq 618261305. Максим

28.07.2010
garviktorgarviktor
Продам/Купить кельтскую Арфу, новая доставка по всей России и СНГ. Есть разные модели подберем любую звоните 8-905-703-56-21 Максим, garant1979@yandex.ru, icq 618261305. Максим

28.07.2010
garviktorgarviktor
Продам/Купить кельтскую Арфу, новая доставка по всей России и СНГ. Есть разные модели подберем любую звоните 8-905-703-56-21 Максим, garant1979@yandex.ru, icq 618261305. Максим

28.07.2010
neflavdneflavd
дватдать тысяч бесплатных досок 20 долларов шесть тысяч каталогов 10 долларов дватдать тысяч бесплатных досок с получением порядка 15 тысяч ссылок в каталоге Яндекс 100$ тридцать тысяч форумов 20 доларов шестдесят тысяч форумов 30 долларов сто пятдесят тысяч форумов 50 долларов менять текст 15 доллраров за 200 вариантов размещение вручную 0.2 доллара за сайт (не меньше 100 сайтов) на e-mail по любой теме 100 долларов сайты для рекламы любого города, области 30 долларов ners645@inbox.ru

28.07.2010
gerldfhgerldfh
Размещю Вашу рекламу на 21 тысяче досок. ссылок в Яндексе появляется порядка 10000 (можно больше) - 50$ На форумы 30$ на 60 тыс. Отчеты предоставляю. Заказы или вопросы пишите на renfer@bk.ru

22.07.2010
gerkdfvgerkdfv
на интернетдоски 10дол. на 10т. , 15долл. на 20т. 6т. каталогах(белые) 10долл. на 30т. форумов 20долл. 60т. форумов 40долл. 100т. форумов 50долл. вручную куда хотите 0.2долл. за один сайт, 60 сайтов мин.заказ.Поиск сайтов бесплатно. на сайты определенной темы 60долл. следующие 20дол. имэйл реклама по определенной теме 100долл. (не спам) надоски любого региона или города 30долл. собиру базы любых ресурсов, имэйл terd645@inbox.ru

17.07.2010
gerkdfvgerkdfv
на интернетдоски 10дол. на 10т. , 15долл. на 20т. 6т. каталогах(белые) 10долл. на 30т. форумов 20долл. 60т. форумов 40долл. 100т. форумов 50долл. вручную куда хотите 0.2долл. за один сайт, 60 сайтов мин.заказ.Поиск сайтов бесплатно. на сайты определенной темы 60долл. следующие 20дол. имэйл реклама по определенной теме 100долл. (не спам) надоски любого региона или города 30долл. собиру базы любых ресурсов, имэйл terd645@inbox.ru

15.07.2010
gerkdfvgerkdfv
на интернетдоски 10дол. на 10т. , 15долл. на 20т. 6т. каталогах(белые) 10долл. на 30т. форумов 20долл. 60т. форумов 40долл. 100т. форумов 50долл. вручную куда хотите 0.2долл. за один сайт, 60 сайтов мин.заказ.Поиск сайтов бесплатно. на сайты определенной темы 60долл. следующие 20дол. имэйл реклама по определенной теме 100долл. (не спам) надоски любого региона или города 30долл. собиру базы любых ресурсов, имэйл terd645@inbox.ru

15.07.2010
berksadberksad
- на интернет-доски 10$ на 10 тысяч или 15$ на 20 тысяч - в каталоги (белые) сайтов 10$ в 6 тысяч - на форумы 20$ на 30 тысяч - на 60 тысяч 40$ - на 100 тысяч 50$ - рассылка вручную на любые сайты 0.2$ за один сайт сбор сайтов входит в стоимость минимальный заказ 50 размещений. - рассылка на сайты определенной тематики 60$ повторные рассылки 20$ - Имэйл рассылки по определенной теме - 100$ - разослать на доски любого города или региона 30$ - региональная рассылка по определенному региону (доски, каталоги, тематические сайты, e-mail) + тематическая e-mail рассылка 360$. - сбор баз любых сайтов, имэйлов miha634@bk.ru

13.07.2010


вернуться в список статей