Общие Вопросы По Настройке Серверов

Здравствуйте, установил тестовую версию, с учетом дальнейшей покупки.

Начал настраивать шаблон, удалил лишнюю информацию, начал выгрузку каталога из 1С.

После некоторого момента CS-Cart начал дико грузить сервер. Нагрузка идет на процессор до 80%.
И я там один пользователь, сайт пока только на локалке.

Сервер у нас свой достаточно мощный.

Kernel and CPU Linux 3.8.0-38-generic on x86_64
Processor information Intel(R) Xeon(R) CPU E5606 @ 2.13GHz, 8 cores

Nginx + PHP-FPM + MySQL

правда версия PHP 5.3

несколько сайтов и битрикс крутится отлично!

Конфиг Nginx брал у вас в мануале.
Единственное хотел спросить есть ли конфиг настройки CS-Cart с учетом, что на сервере несколько сайтов с разными CMS?
И почему такая нагрузка идет? Как оптимизировать, куда копать?

Nginx + PHP-FPM + MySQL

правда версия PHP 5.3

несколько сайтов и битрикс крутится отлично!

Конфиг Nginx брал у вас в мануале.
Единственное хотел спросить есть ли конфиг настройки CS-Cart с учетом, что на сервере несколько сайтов с разными CMS?
И почему такая нагрузка идет? Как оптимизировать, куда копать?

Сказать однозначно невозможно — нужно профилировать (см. видео). В отчёте будет видно, что в приложении заставляет процессор «напрягаться».

[media]http://www.youtube.com/watch?v=5YUxh4DRy04[/media]

Я рекомендую также задуматься об обновлении PHP до стабильной 5.6. Разработчики языка поработали над производительностью. В будущем и вовсе смигрировать на PHP 7.0 (релиз осенью), когда будет готова с ним совместимость.

Представленный конфиг никак не мешает работе остальных CMS. Вы создаёте отдельный конфиг для хоста вашего магазина и подключаете его в NGINX с помощью include. В некоторых дистрибутивах есть каталоги sites-enabled и conf.d для этих целей.

Я рекомендую также задуматься об обновлении PHP до стабильной 5.6. Разработчики языка поработали над производительностью. В будущем и вовсе смигрировать на PHP 7.0 (релиз осенью), когда будет готова с ним совместимость.

Да, PHP7 ждем, производительность (заявленная Zend) впечатляет.

Хочу поблагодарить Глеба за проделанную работу и рассказать о своих впечатлениях!

Первое, что всегда отталкивает при взаимодействии заказчика и исполнителя это предоплата работы, т.к. в таком случае заказчик не уверен за конечный результат и долго сомневается, прежде чем выбрать исполнителя. Глеб не берет предоплату и выполняет свою работу быстро, качественно и профессионально. Мне кажется на такой шаг может пойти только, уверенный в своем деле, не боящийся трудностей человек.

Обращался несколько раз, моя проблема была всегда оперативно решена.

Рекомендую как ответственного и профессионального исполнителя!

Еще раз, Глеб, большое спасибо! 8)

Всем привет!

Делаю сайтец, на 4.3, поставил на VPS, пока правда слабенький 1Core / 2GB ООП / 60GB SSD, настроил все согласно мануалу по nginx, вроде все работает прекрасно, правда иногда подтормаживает, но я думаю это решается покупкой более мощного VSP и привлечением специалиста по настройке серверов.

Возникала необходимость залить сайт на индексацию, как обычно сгенерировал sitemap, долго длилось минут 20, ну может потому что 140 000 товаров в систему уже, вроде завершилось, ошибок не увидел, но перехожу на или на карта не работает.

Я так думаю что это настройка сервака?

Еще такой вопрос как сделать что бы сайт был без www ?

Пробовал делать в конфиге 301 редирет, тогда сайт отваливается.

Собственно конфиг

################################################################################
#   Виртуальный хост по умолчанию, предназначен для работы по IP адресу или домену без собственной конфигурации
################################################################################
server {
    listen  80;
    server_name _;
    root /var/www/empty;
# Редирект на нужный магазин по умолчанию
location / {
    return 301 $scheme://technoshop.pro$request_uri;
}

}

################################################################################

Описание и конфигурация основного домена для интернет-магазина

################################################################################

server {
listen 80;
# Домен интернет-магазина
server_name technoshop.pro www.technoshop.pro;

#   Кодировка по-умолчанию
charset utf-8;

#   Расположение логов
access_log  /var/log/nginx/technoshop.pro_access.log combined;
error_log   /var/log/nginx/technoshop.pro_error.log;

#   Основной каталог интернет-магазина
root /var/www/html/technoshop.pro;

#   Сжатие
gzip on;
gzip_disable "msie6";
gzip_comp_level 6;
gzip_min_length  1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types text/plain application/xml
  application/javascript
  text/css
  text/js
  text/xml
  application/x-javascript
  text/javascript
  application/json
  application/xml+rss;

#   Прочие настройки
client_max_body_size            100m;
client_body_buffer_size         128m;
client_header_timeout           300m;
client_body_timeout             300m;
send_timeout                    300m;
client_header_buffer_size       100k;
large_client_header_buffers     4 16k;

#   Точка входа в интернет-магазин
location / {
    #   Папка с файлами интернет-магазина
    root /var/www/html/technoshop.pro;

    #   Главный скрипт
    index  index.php index.html index.htm;

    #   Для  работы API
    rewrite ^/api/(.*)$ /api.php?_d=$1&ajax_custom=1&$args last;

    #   Логика поиска скрипта по порядку: файл, папка, скрипт
    try_files $uri $uri/ @fallback;
}

#   Правиле rewrite для модуля SEO
location @fallback {
    rewrite  ^(.*)$ /index.php?$args last;
}

#   Настройки статики, первое правило
location ~* \.(jpeg|ico|jpg|gif|png|css|js|pdf|txt|tar|gz|wof|csv|zip|xml|yml) {
    access_log off;
#   Правило поиска статических файлов. Если файл не находится по адресу магазина, то ищем файл по правилу @statics.
#   Например если магазин расположен в подпапке technoshop.pro/shop/
    try_files $uri @statics;
    expires 14d;
    add_header Access-Control-Allow-Origin *;
    add_header Cache-Control public;
    root /var/www/html/technoshop.pro;
}

#   Правило поиска статических файлов для витрин. Например, если у Вас две витрины в разных подпапках: technoshop.pro и technoshop.pro/shop/
location @statics {
    rewrite ^/(\w+)/(.*)$ /$2 break;
    access_log off;
    rewrite_log off;
    expires 14d;
    add_header Cache-Control public;
    add_header Access-Control-Allow-Origin *;
    root /var/www/html/technoshop.pro;
}

#   Обрабатываем PHP скрипты. Магия
location ~ \.php$ {
    root /var/www/html/technoshop.pro;

proxy_connect_timeout  60000s;
proxy_send_timeout  60000s;
proxy_read_timeout  60000s;
fastcgi_send_timeout 60000s;
fastcgi_read_timeout 60000s;

    try_files $uri $uri/ =404;
    #   Путь до сокета демона PHP-FPM
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

Ограничиваем возвожность запуска php в каталогах. Для безопасности.

location /app/ {
        deny all;

        #   Разрешаем запуск скрипта обмена данными с 1С.
        location ^~ /app/addons/rus_exim_1c/exim_1c.php {
            allow all;
        }
}

#   Разрешаем запуск скриптов способов оплаты
location /app/payments/ {
        allow all;
}

#   Запрещаем PHP в папке /design
location /design/ {
allow all;
        location ~* \.([tT][pP][lL]|[pP][hH][pP].?)$ {
        deny all;
        }
}

#   Запрещаем PHP в папке /images
location /images/ {
    allow all;
    location ~* \.([pP][hH][pP].?)$ {
        deny all;
    }
}

#   Разрешаем только статику в папке /var
location /var/ {
    deny all;
    location ~* \.(js|css|png|jpg|gz|xml|yml)$ {
        allow all;
        expires 10M;
        add_header Cache-Control public;
        add_header Access-Control-Allow-Origin *;
    }
}

#   Закрываем доступ к бэкапам базы данных интернет-магазина (папка /var/database/) с наружи
location /var/database/ {
    deny all;
}

#   Хранилище резервных копий шаблонов
location /var/skins_repository/ {
    allow all;
    location ~* \.([tT][pP][lL]|[pP][hH][pP].?)$ {
        deny all;
    }
}

#   Обработка API
location ~* api/ {
    rewrite ^/api/(.*)$ /api.php?_d=$1&ajax_custom=1&$args last;
}

#   Запрвещаем .htaccess и .htpasswd
location ~ /\.ht {
    deny  all;
}

}

Пробовал делать в конфиге 301 редирет, тогда сайт отваливается.

Разделите на две директивы server, с той что с www укажите безусловный редирект.

server {
    listen 80;
    server_name www.technoshop.pro;
    redirect ^ http://technoshop.pro$request_uri permanent;
}
server {
    listen 80;
    server_name technoshop.pro;
    [...]
}

Разделите на две директивы server, с той что с www укажите безусловный редирект.

server {
    listen 80;
    server_name www.technoshop.pro;
    redirect ^ http://technoshop.pro$request_uri permanent;
}
server {
    listen 80;
    server_name technoshop.pro;
    [...]
}

Недовольный ругается на строку redirect ^ http://technoshop.pro$request_uripermanent;

-- Unit nginx.service has begun starting up.
Nov 26 08:59:09 39099.simplecloud.club nginx[17552]: nginx: [emerg] unknown directive "redirect" in /etc/nginx/sites-enabled/default:21
Nov 26 08:59:09 39099.simplecloud.club nginx[17552]: nginx: configuration file /etc/nginx/nginx.conf test failed
Nov 26 08:59:09 39099.simplecloud.club systemd[1]: nginx.service: control process exited, code=exited status=1
Nov 26 08:59:09 39099.simplecloud.club systemd[1]: Failed to start A high performance web server and a reverse proxy server.
-- Subject: Unit nginx.service has failed

Недовольный ругается на строку redirect ^ http://technoshop.pro$request_uripermanent;

-- Unit nginx.service has begun starting up.
Nov 26 08:59:09 39099.simplecloud.club nginx[17552]: nginx: [emerg] unknown directive "redirect" in /etc/nginx/sites-enabled/default:21
Nov 26 08:59:09 39099.simplecloud.club nginx[17552]: nginx: configuration file /etc/nginx/nginx.conf test failed
Nov 26 08:59:09 39099.simplecloud.club systemd[1]: nginx.service: control process exited, code=exited status=1
Nov 26 08:59:09 39099.simplecloud.club systemd[1]: Failed to start A high performance web server and a reverse proxy server.
-- Subject: Unit nginx.service has failed

Опечатка. Исправьте redirect на rewrite.

Перестало работать

браузер говорит

На этой странице обнаружена циклическая переадресация

Теперь это не редирект со стороны NGINX. Можете убедиться по заголовкам.

goncharov at Gleb-Goncharov in ~
$ curl -I http://www.technoshop.pro/
HTTP/1.1 301 Moved Permanently
Server: nginx/1.6.2 (Ubuntu)
Date: Thu, 26 Nov 2015 09:26:28 GMT
Content-Type: text/html
Content-Length: 193
Connection: keep-alive
Location: http://technoshop.pro/

goncharov at Gleb-Goncharov in ~
$ curl -I http://technoshop.pro/
HTTP/1.1 200 OK
Server: nginx/1.6.2 (Ubuntu)
Date: Thu, 26 Nov 2015 09:26:33 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Last-Modified: Thu, 26 Nov 2015 09:26:29 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Expires: -1

Проверьте, делает ли редирект CS-Cart, например.

Все заработало, спасибо.

Не подскажите что может быть с sitemap?

Добрый день!

Есть ли практика использования не myisam движка хранилища в CSCART ?

Для каких таблиц рекомендуете не использовать myisam ?

Добрый день!

Есть ли практика использования не myisam движка хранилища в CSCART ?

Для каких таблиц рекомендуете не использовать myisam ?

Касаемо выбора движка: из не-MyISAM вы можете использовать только InnoDB/XtraDB и Memory. Однако учтите, в CS-Cart нет транзакционности, потому использование движка с ACID не имеет смысла. Напротив, вы уходите от производительной MyISAM, пусть и менее надёжной, к более медленной модели в InnoDB/XtraDB.

Если же вас интересует Memory, то ни одну из таблиц, за исключением кеша, если вы храните таковой в базе данных, не стоит хранить в RAM. Но и для кеша есть более производительные Redis и APCu.

Касаемо выбора движка: из не-MyISAM вы можете использовать только InnoDB/XtraDB и Memory. Однако учтите, в CS-Cart нет транзакционности, потому использование движка с ACID не имеет смысла. Напротив, вы уходите от производительной MyISAM, пусть и менее надёжной, к более медленной модели в InnoDB/XtraDB.

Если же вас интересует Memory, то ни одну из таблиц, за исключением кеша, если вы храните таковой в базе данных, не стоит хранить в RAM. Но и для кеша есть более производительные Redis и APCu.

В CS-Cart даже во время чтения происходит запись или обновление таблицы например популярных товаров , хранилища сессий , логов в базе и все это с блокировкой таблицы в случае myisam , возможно ещё какие-то модули что -то пишут .

Интересно как Вы решаете вопросы конкурентных изменений , какие движки используете и понимает ли CSCART тип движка , изменится ли тип движка при обновлении очередным патчем ?

Привет! Сделал поддомен с помощью ISPmanager, залил CS Cart свежескачанный. При попытке зайти на поддомен вижу сообщение

Forbidden
You don't have permission to access / on this server.
Залил htaccess от старого сайта, права выставленны. Куда копать?

Привет! Сделал поддомен с помощью ISPmanager, залил CS Cart свежескачанный. При попытке зайти на поддомен вижу сообщение

Forbidden
You don't have permission to access / on this server.
Залил htaccess от старого сайта, права выставленны. Куда копать?

Прочитать последние записи error.log.

Доброе утро Глеб! У меня проблема такая установили CS-CART вроде все работало хорошо, после добавления более 700 товаров началась нагрузка на хостинг ЦПУ более 70% нагрузки сайт prokesha.ru, я обратился к хостеру по поводу провести анализ нагрузки мне ответили "Нагрузка происходит от фаила php.ini

Хостер написал далее:

Нагрузка создаётся процессами php, nо есть, скриптами сайтов:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

14574 u0157959 20 0 355m 54m 36m R 100.0 0.1 1:38.14 php

17951 u0157959 20 0 354m 52m 35m R 100.0 0.1 0:59.24 php

30470 u0157959 20 0 354m 53m 36m R 100.0 0.1 3:46.81 php

21374 u0157959 20 0 13668 1596 788 R 1.9 0.0 0:00.02 top

20029 u0157959 20 0 344m 23m 15m S 0.0 0.0 0:00.13 php

20033 u0157959 20 0 344m 22m 14m S 0.0 0.0 0:00.06 php

21371 u0157959 20 0 103m 1608 1280 S 0.0 0.0 0:00.00 bash

Судя по всему, проблема в скриптах сайта prokesha.ru, при первичной диагностике инструментами хостинга, получить развёрнутую информацию не удалось:
bash-4.1$ strace -p 17951
Process 17951 attached
--- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=16530, si_uid=0} ---
rt_sigreturn() = 49571
+++ killed by SIGKILL +++

[Mon Feb 29 15:27:09 2016] [error] [client 157.55.39.201] Premature end of script headers: index.php
[Mon Feb 29 15:27:48 2016] [error] [client 157.55.39.218] Premature end of script headers: index.php

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

Далее еще ответ был:

Проблема с доступностью сайта была устранена, пожалуйста, проверьте. Для устарнения проблемы потребовалось изменение некоторых параметров в php.ini. Из-за использования неоптимальных настроек PHP на вашем аккаунте при работе сайта запускалось чрезмерное количество php процессов из-за чего могла наблюдаться столь высокая нагрузка.
Проследите за нагрузкой на CPU в ближайшем будущем, если нагрузка будет превышать 30% рекомендуем обратиться к разработчикам вашего сайта.

Глеб подскажите как с этим бороться!? В какую сторону капать!? Менять хостинг не вариант!

Есть задача установить правильные настройки для магазина на A2Hosting - Managed VPS Hosting - Prestige+ Managed VPS.
Сейчас у нас проблема со скоростью сайта.
Скорость загрузки главной странички не проблема, проблема в загрузке страниц товаров.
Нужен хороший специалист.
Лучше писать в личку.

Глеб подскажите как с этим бороться!? В какую сторону капать!? Менять хостинг не вариант!

Вам верно посоветовали обратиться к разработчикам. Хорошим подспорьем для начала анализа будет отчёт профилировщика (XHProf или XDebug), который вы можете передать девелоперу для исправления ошибок.

Подскажите,случайно удалили все папки с хостинга,база данных цела,закачиваю бэкап файлов,но система не поднимается,выводит пустую страницу вместо сайта.

По идее должно было встать на свои места,т.к все файлы полностью идентичные,но нет

Где искать проблему?