Виктор Карионов,в документации о настройке nginx пока только пример, да и то очень сложный до понимания. Чтобы с ним разобраться и настроить, нужно хорошо знать как настраивать nginx
У вас все работает хорошо без nginx, никаких ошибок и кэш на каждом хите не перезаписывается?
Ваш конфиг не верный. Там используется rewrite, которая не позволит нам достичь нужного эффекта. Нужно не переадресовать, а именно указать, что кэш брать из нужного пути. Если настроено не верно, не факт что совсем "свалиться", может работать не верно, может кэш все равно не отдавать nginx, а все же запускать апач.
Я вам приведу только некоторые части:
Код |
---|
...
set $proxyserver "http://127.0.0.1:8888";
set $docroot "/home/bitrix/www";
...
# путь по умолчанию к кэш-файла
set $storedAuth "";
set $usecache "";
# Проверяем все условия для включения композита
if ( $http_bx_action_type = "" ) { set $usecache "A"; } #проверка на аякс-запрос
if ( $request_method = "GET" ) { set $usecache "${usecache}B"; } #метод передачи GET
if ( $cookie_BITRIX_SM_NCC = "" ) { set $usecache "${usecache}C"; } #не установлена кука _NCC
if ( $http_x_forwarded_scheme !~ "https" ){ set $usecache "${usecache}D"; } #не https
if (-f "$docroot/bitrix/html_pages/.enabled") { set $usecache "${usecache}E"; }
# IE9 и ниже исключить.
modern_browser_value "modern"; #Проверяем что браузер современный
modern_browser msie 10.0; #Устанавливаем какой браузер считать современным
modern_browser unlisted;
if ($modern_browser) { #Если браузер msie 10.0 и выше
set $usecache "${usecache}F";
}
# Проверяем авторизованного пользователя
if ( $cookie_BITRIX_SM_LOGIN != "" ) { set $storedAuth "A"; }
if ( $cookie_BITRIX_SM_UIDH != "" ) { set $storedAuth "${storedAuth}B"; }
if ( $cookie_BITRIX_SM_CC != "Y" ) { set $storedAuth "${storedAuth}C"; }
if ( $storedAuth !~ "ABC" ) { set $usecache "${usecache}Z"; }
...
## cache location
location ~* @.*\.html$ {
internal;
}
# Dynamic pages
location ~ /$ {
if ($usecache != "ABCDEFZ" ) {
break;
proxy_pass $proxyserver;
}
set $test_file "/bitrix/html_pages/$host$uri/index@$args.html";
try_files $test_file @apache;
}
# php file processing
location ~* ^(.*)\.php$ {
if ($usecache != "ABCDEFZ") {
break;
proxy_pass $proxyserver;
}
set $test_file "/bitrix/html_pages/$host$1@$args.html";
try_files $test_file @apache;
}
# apache location
location @apache {
proxy_pass $proxyserver;
}
...
|
Вам именно нужно подправить существующие директивы или дописать, если таких нету. Остальные нужно оставить!
Так, же если у вас работает на виртуальной машине, и в папке
папки с портом идут в имени, то вместо $host нужно написать $host-номер порта (можно прямо номер порта, а можно с помощью переменной внутри конфига nginx)
Как проверить что завелось как нужно? Несколько раз обновите страницу, которая в текущий момент отображается в композитном режиме и остановите апач. Сайт все равно будет открываться (но второй хит будет провальным)
Если что-то не понятно, я потом могу более детальнее расписать что и какие директивы для чего тут служат.