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


#121

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

Начал настраивать шаблон, удалил лишнюю информацию, начал выгрузку каталога из 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?
И почему такая нагрузка идет? Как оптимизировать, куда копать?


#122

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 для этих целей.


#123

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

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


#124

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

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

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

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

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


#125

Всем привет!

Делаю сайтец, на 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;
}

}


#126

Пробовал делать в конфиге 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;
    [...]
}

#127

Разделите на две директивы 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

#128

Недовольный ругается на строку 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.


#129

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

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

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

#130

Теперь это не редирект со стороны 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, например.


#131

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

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


#132

Добрый день!

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

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


#133

Добрый день!

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

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

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

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


#134

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

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

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

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


#135

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

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

#136

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

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

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


#137

Доброе утро Глеб! У меня проблема такая установили 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% рекомендуем обратиться к разработчикам вашего сайта.

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


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

#139

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

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


#140

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

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

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