CS-Cart, движок для магазина

Некоторое время назад начали переезд с Joomla c ее странным Virtuemart на более кошерный в плане потребления ресурсов OpenCart. Из-за того, что переезд всех сайтов идет не мгновенно, то все прелести связки nginx + php-fpm ощутить пока не удалось. В связи же с настройкой другого проекта обнаружился еще один довольно интересный в плане функционала магазин – CS-Cart, мощный и расширяемый. На сайте есть демо-версия, доступна бесплатная версия и два варианта платных.

 

С ним получилась какая-то смешная история. При стандартном использовании apache+mod_php или php-cgi время генерации страниц не поражало воображение. Стали смотреть в сторону nginx + php-fpm. Настало время подивиться, насколько быстрее отрабатывала эта связка. Судя по встроенному дебагеру ускорились раз в 5–8 как минимум. siege был более консервативен, вместо 10–15 посетителей по сайту спокойно ходили 28–35. Best practice по настройке именно такой связки не появилась на форуме самого продукта, что печально.


Приведу ниже, в качестве нескольких минут позора:

server {
listen 127.0.0.1:80;
server_name domain.ru www. domain.ru;
root /var/www/domain/data/www/domain.ru;
index index.php index.html index.htm;

location / {

try_files $uri $uri/ @rewrites;

}

location @rewrites {
if ($request_filename !~ «.(png|gif|ico|swf|jpe?g|js|css)$»){

set $rule_0 1$rule_0;
}
if (!-f $request_filename){

set $rule_0 2$rule_0;
}
if (!-d $request_filename){

set $rule_0 3$rule_0;
}
if ($rule_0 = “321”){

rewrite /. /index.php?sef_rewrite=1 last;
}

}

location ~ .php {
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_pass 127.0.0.1:9000;

}

location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }
location ~ /. { access_log off; log_not_found off; deny all; }

location * ^.+.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /var/www/domain/data/www/domain.ru;
access_log /var/www/domain/domain.ru.access.log ;
expires 30d;

}
}
[ ]

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