1С-Битрикс: Управление сайтомНа главную страницу
Клиентам
Маркетплейс
Партнерам
Разработчикам
Интеграция с 1С
Идея?


Личный кабинет
Авторизоваться
Регистрация
(войти) Корзина
Логин:

Пароль:



Забыли свой пароль?
Регистрация
Войти как пользователь:
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
ВКонтакте
Мой Мир
Twitter
Facebook
Google
Livejournal
Яндекс
Rambler
Mail.Ru
Liveinternet
Blogger
OpenID
Используйте вашу учетную запись VKontakte.ru для входа на сайт.
Используйте вашу учетную запись Мой Мир@Mail.ru для входа на сайт.
Используйте вашу учетную запись на Twitter.com для входа на сайт.
Используйте вашу учетную запись на Facebook.com для входа на сайт.
Используйте вашу учетную запись Google для входа на сайт.
.livejournal.com
@yandex.ru
@rambler.ru
@mail.ru
http://www.liveinternet.ru/users/ /
.blogspot.com
OpenID:
  • Документация
    • Платформа PHP
    • Корпоративный портал
    • Платформа ASP.NET
    • Отраслевые решения
    • Marketplace
    • Аренда приложений (SaaS)
  • Обучение и сертификация
    • Онлайн-курсы и сертификация
    • Учебные центры
    • Мое обучение
    • Учебные видеоролики
  • Центр поддержки
    • Поддержка
    • FAQ
    • Мои обращения
  • Сообщество
    • Блоги Битрикс
    • Блоги веб-разработчиков
    • Общие форумы
    • Веб-разработчики
      • Моя страница
      • Мои сообщения
      • Группы
      • Найти коллег
  • Cтатьи
    • Архив
Главная / Общение / Сообщество разработчиков / Оптимизация веб-проектов / Блог

Битрикс + nginx = любовь. Apache — третий лишний

Основное
Блог
Микроблог
Участники

Оптимизация веб-проектов

Тема: Производительность
Описание: Группа по вопросам производительности веб-проектов.

Битрикс + nginx = любовь. Apache — третий лишний

3
Алексей Шоков
18.06.201000:3618.06.2010 00:36:14
Apache — это, по большому счёту, такой рудемент уже. И держится он только потому, что много в мире виртуальных хостингов, на которых .htaccess решает. Ну и всяких специфических расширений к нему куча (если уж случилась ситуация, что такое расширение нужно — тут да, тут без вариантов Apache).

Представим, что мы на собственном сервере, на котором имеются все возможности доступа к конфигурации. Тогда что нам мешает полностью избавиться от Apache в пользу nginx? Мне не помешало ничего smile:)

Далее я просто приведу пару подводных камней и путей из обхода, с которыми пришлось столкнуться при переходе.

Собственно, основная проблема только с ЧПУ, с тем, как его настроить. Решается просто:

Код
server {

   ...

   if (!-e $request_filename) {
      rewrite  ^(.*)$  /bitrix/urlrewrite.php last;
   }

   location ~ \.php$ {
      if (!-f $request_filename) {
         rewrite  ^(.*)/index.php$  $1/ redirect;
      }

      ...

   }

   ...

}

Далее, наткнулся на ограничение максимального размера заголовка. Возможно, это я такой везучий, но так уж случилось у меня с настройками по умолчанию, поэтому, думаю, может и у других быть. Я решил проблему на уровне всего сервера:

Код
http {

   ...

   fastcgi_buffer_size  128k;
   fastcgi_buffers  4 256k;
   fastcgi_busy_buffers_size  256k;

   ...

}

Тесты производительности, надеюсь, будут в ближайшее время...
Алексей Шоков
18.06.201000:3618.06.2010 00:36:14
Просмотров:3088 Комментариев:10 3
Теги: nginx, apache
*
 
Незарегистрированным пользователям запрещена вставка ссылок. Зарегистрируйтесь или авторизуйтесь.
*
Добавить комментарий
0
Емельянов Алексей
18.06.2010 09:50:58
Код
server {

   ...

   if (!-e $request_filename) {
      rewrite  ^(.*)$  /bitrix/urlrewrite.php last;
   }

   location ~ \.php$ {
      if (!-f $request_filename) {
         rewrite  ^(.*)/index.php$  / redirect;
      }

      ...

   }

   ...

} 


Как-то это всё не по-нашенски, возможно сказывается долгая работа с апачем...
Ответить Ссылка 0
0
Usoltsev Igor
18.06.2010 10:07:34
Спасибо, Алексей
Обязательно добавьте результаты по производительности, характеристики сервера (hw, sw) и данные по текущей нагрузке - будет отличное описание настройки рабочего проекта без Apache smile:)
Ответить Ссылка 0
0
Сергей Реутов
18.06.2010 10:20:26
сижу репу чешу, давно желание есть от апача избавиться, но тааааак страааашно smile:o
обязательно что ни будь не учту, про что ни будь забуду ((((
Ответить Ссылка 0
0
Алексей Шоков
18.06.2010 11:12:51
Поднимите сервер рядом, протестируйте на нём всё smile;)
Ответить Родитель Ссылка 0
0
User 2000
18.06.2010 13:24:32
PHP FPM?
Ответить Ссылка 0
0
Алексей Шоков
18.06.2010 13:54:49
Ага.
Ответить Родитель Ссылка 0
0
Systemnik
06.07.2010 19:58:08
Код
server {
   listen ...;
   server_name domain.ru;
    
   root    /home/domain.ru;
    
   location ~ (/\.ht|/bitrix/modules|/upload/support/not_image) {
        deny all;
   }
        
   location / {
   try_files   $uri @second_check;
   }

   location @second_check {
   try_files   $uri/index.php @bitrix;
   fastcgi_pass   unix:/var/run/php-fpm/socks/domain.ru.sock;
   fastcgi_param SCRIPT_FILENAME $document_root$uri;
   include fastcgi_params;
   }

   location ~ \.php$ {
   try_files   $uri @bitrix;
   fastcgi_pass   unix:/var/run/php-fpm/socks/domain.ru.sock;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   include fastcgi_params;
    }
   
    location @bitrix {
   fastcgi_pass   unix:/var/run/php-fpm/socks/domain.ru.sock;
   include fastcgi_params;
   fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php;
    }   
}    


if'ами для таких вещей пользоваться не рекомендуется.
Лучше обойтись без них.
Ответить Ссылка 0
1
Systemnik
13.08.2010 10:18:59
Как выяснилось, корректно работает и более простой вариант:

server {
listen 80;
server_name domain.ru;

root /document/root;
index index.php index.html;

location ~ (/\.ht|/bitrix/modules|/upload/support/not_image) {
deny all;
}

location / {
try_files $uri $uri/ @bitrix;
}

location ~ \.php$ {
try_files $uri @bitrix;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

location @bitrix {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php;
}
}
Ответить Ссылка 1
1
Сергей
18.01.2011 23:18:10
Столкнулся с проблемой обработки директории goods.
Пишет
Страница не найдена
Перейти на главную страницу.

Видимо надо какой-то отдельный обработчик в конфиге nginx создавать?
Ответить Ссылка 1
0
Тема
27.04.2011 12:51:01
А для php-fpm в chroot что необходимо изменить в конфиге nginx?
Ответить Ссылка 0

Добавить комментарий

Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».
 
Технологии Эрмитаж
BitrixMobile
Автокеширование
SiteUpdate
Производительность Виртуальная машина
Веб-окружение
Результаты тестов
Выбрать хостинг
Веб-кластер
Безопасность Проактивная защита
Веб-антивирус
Аутентификация

Контакты Поиск Карта сайта
Телефон: +7 (495) 229-14-41
Оставайтесь с нами: Facebook Twitter Habrahabr VKontakte Developers Google 1+
Как распознать QR код?Контакты QR


© 2001-2012 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом.
Английская версия Немецкая версия