Jump to content
Kerm

Настройка nginx+php-fpm (без apache) для работы с prestashop

Recommended Posts

Настроил работу престы на сервере с nginx+php-fpm без участия apache, хочу вынести на обсуждение свой конфиг и может кто еще чего подскажет можно сделать или оптимизировать, а может кому сильно помогу:

 

Сервер у меня на CentOS 6 64bit, имеет два виртуальных процессора

 

Прежде всего хочу сказать что apache у меня все же установлен на сервере, но только для работы ISPmanager, потому что без него данная панель работать не умеет, а жизнь упрощает на много, особенно если сайт не один, много почтовых ящиков, баз данных, нужно настроить резервное копирование и т.д. Apache и ISPmanager у меня висит на отдельном порту и nginx не как с apache не контактирует. Когда панель не нужна то сервис httpd всегда можно вырубить если есть такая необходимость, включать только по надобности из консоли.

 

nginx.conf:

 

user  nginx;
# Число рабочих процессов, рекомендуется ставить по количеству ядер
worker_processes 2;
# Данную функцию нужно использовать только если на сервере установлено два процессора, если более то погуглив быстро найдете пример для 4х и более процессоров.
# Проверить сколько у Вас процессоров, можно в консоли через top, нажав на клавишу 1 и если там только cpu0 то один, есди cpu0 и cpu1 то два и т.д.
# Ну или через cat /proc/cpuinfo по той же аналогии.
worker_cpu_affinity 0101 1010;
# Уменьшает число системных вызовов gettimeofday(), что приводит к увеличению производительности
timer_resolution 100ms;
# Изменяет ограничение на число используемых файлов RLIMIT_NOFILE для рабочего процесса.
# В интернете есть примеры где указана цифра 1000000 и т.д., но я советую использовать именно 8192.
worker_rlimit_nofile 8192;
# Директива задаёт приоритет рабочих процессов от -20 до 20 (отрицательное число означает более высокий приоритет).
worker_priority -10;
# Лог полезно включить для выявления ошибок в работе сайта, отлавливать ошибки когда картинка, страница или какой то файл были не найдены на сайте, а указание на это есть.
error_log   /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;
pid /var/run/nginx.pid;

events {
 worker_connections  2048;
 # Использовать epoll можно только для Centos/Fedora, в других OS другое название.
 use epoll;
}

http {
 reset_timedout_connection on;
 client_header_timeout 15;
 client_body_timeout 15;
 send_timeout 5;
 keepalive_timeout 30 15;

 include mime.types;
 default_type application/octet-stream;

 client_header_buffer_size 1k;
 large_client_header_buffers 4 4k;
 server_tokens off;
 log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
				  '$status $body_bytes_sent "$http_referer" '
				  '"$http_user_agent" "$http_x_forwarded_for"';
	#access_log  logs/access.log  main;
 access_log off;
 gzip on;
 gzip_min_length 1100;
 gzip_proxied expired no-cache no-store private auth;
 gzip_buffers 64 8k;
 gzip_http_version 1.1;
 gzip_types text/plain application/xml application/x-javascript text/javascript text/css;
 gzip_disable "msie6";
 gzip_disable Firefox/([0-2]\.|3\.0);
 gzip_disable Chrome/2;
 gzip_disable Safari;
 gzip_comp_level 1;
 limit_conn_zone   $binary_remote_addr  zone=addr:10m;

 client_max_body_size 10M;

 charset on;
 sendfile on;
 tcp_nopush on;
 tcp_nodelay on;

 log_format  isp '$bytes_sent $request_length';
# Load config files from the /etc/nginx/conf.d directory
include /etc/nginx/conf.d/*.conf;
# include ниже нужен только если на сервере установлена и работает панель ISPmanager
include /usr/local/ispmgr/etc/nginx.domain;
######################SERVERS##########################
######################SITE.RU#####################
server {
 listen
 XX.XX.XX.XX:80;
 server_name mysite.ru www.mysite.ru;
 charset utf8;
 # Прикрепляем файл со значениями из .htaccess
 include prestashop.conf;
 location / {
		root /var/www/server_user/data/www/mysite.ru;
		index index.php;
  server_tokens on;
  client_max_body_size 10m;
	 client_body_buffer_size 128k;
  if ( !-e $request_filename ) {
						rewrite (/|\.php|\.html|\.htm|/[^.]*)$ /index.php last;
						break;
		}
 }
 # Так как у нас нету apache то если файл или страница (не php) будет не найдена, то nginx выдаст ошибку 404, это правило при этой ошибке автоматически редиректит на главную страницу сайта.
 error_page  404 /404/;
	location = /404/ {
  rewrite ^ http://mysite.ru permanent;
	}
 # При этиъ ошибках отправлять пользователя на стандартную страницу с описанием ошибки nginx
	error_page  502 503 504  /50x.html;
	location = /50x.html {
		root /usr/share/nginx/html;
	}
 location ~ \..*/.*\.php$ {
  return 404;
 }
 location ~ \.php$ {
  root /var/www/server_user/data/www/mysite.ru;
  if ($uri !~ "^/upload/") {
		fastcgi_pass 127.0.0.1:9000;
		}
  if ($uri !~ "^/download/") {
		fastcgi_pass 127.0.0.1:9000;
		}
	  fastcgi_connect_timeout 100000s;
	  fastcgi_read_timeout 1000000s;
	  fastcgi_send_timeout 1000000s;
	  fastcgi_buffer_size 64k;
	  fastcgi_buffers 16 64k;
	  fastcgi_param  SCRIPT_NAME index.php;
		fastcgi_pass   127.0.0.1:9000;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
		include		fastcgi_params;
		if (!-e $request_filename) {
						rewrite  ^(.*)$  /index.php last;
		}  
	}
	location ~* ^.+\.(jpg|jpeg|gif|css|png|js|xml|htm|html|shtml)$ {
  root /var/www/server_user/data/www/mysite.ru;
  expires		 4M;
  access_log	  off;
  #set			$memcached_key $uri;
  #memcached_pass		 127.0.0.1:11211;
	}
 location /img/ {
 #Кеширум картинки месяца на 4
  expires 4M;
 #Кешируем везде (и на прокси и на клиентах)
  add_header Cache-Control public;
 }
	location ~ /\.ht {
		deny  all;
	}
 # Явно указываем путь к robots.txt, если не указать то файл будет не найден
	location = /robots.txt {
  allow all;
  root /var/www/server_user/data/www/mysite.ru;
 }
	# Явно указываем путь к favicon.ico, если не указать то файл будет не найден
	location = /favicon.ico {
  allow all;
  root /var/www/server_user/data/www/mysite.ru/img;
	}
 # По скольку apache у нас нету, то закрываем папки, файлы, типы файлов для доступа nginx'ом
 location ~* \.(override|tools|translations|webservice|modules|char|classes|install|config|controllers|docs|export|localization|log|.*sql|.*bz2|.*csv|.*tpl(\.php)?|xtmpl)$|^(\..*|Entries.*)$|\.php_ {
	deny all;
	}
 # Строчка ниже нужна только если у Вас установлена и работает панель ISPmanager
 include /usr/local/ispmgr/etc/nginx.inc;
}
}

 

prestashop.conf (Лучше используйте значения их своего .htaccess генерированного Вашим престашопом, переделать его под nginx легко, сравните мой и Ваш файл, там спереди и сзади нужно поменять значения на те что понимает nginx )

 

rewrite ^/([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1-$2$3.jpg last;
rewrite ^/([0-9]+)\-([0-9]+)/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1-$2.jpg last;
rewrite ^/([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$1$2.jpg last;
rewrite ^/([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$1$2$3.jpg last;
rewrite ^/([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg last;
rewrite ^/c/([0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/c/$1$2.jpg last;
rewrite ^/c/([a-zA-Z-]+)/[a-zA-Z0-9-]+\.jpg$ /img/c/$1.jpg last;
rewrite ^/([0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/c/$1$2.jpg last;
rewrite ^/([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$1 last;
rewrite ^/[a-zA-Z0-9-]*/([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$1 last;
rewrite ^/([0-9]+)\-[a-zA-Z0-9-]*(/[a-zA-Z0-9-]*)+ /category.php?id_category=$1&noredirect=1 last;
rewrite ^/([0-9]+)\-[a-zA-Z0-9-]* /category.php?id_category=$1 last;
rewrite ^/([0-9]+)__([a-zA-Z0-9-]*) /supplier.php?id_supplier=$1 last;
rewrite ^/([0-9]+)_([a-zA-Z0-9-]*) /manufacturer.php?id_manufacturer=$1 last;
rewrite ^/content/([0-9]+)\-([a-zA-Z0-9-]*) /cms.php?id_cms=$1 last;
rewrite ^/content/category/([0-9]+)\-([a-zA-Z0-9-]*) /cms.php?id_cms_category=$1 last;
rewrite ^/page-not-found$ /404.php last;
rewrite ^/address$ /address.php last;
rewrite ^/addresses$ /addresses.php last;
rewrite ^/authentication$ /authentication.php last;
rewrite ^/best-sales$ /best-sales.php last;
rewrite ^/cart$ /cart.php last;
rewrite ^/contact-us$ /contact-form.php last;
rewrite ^/discount$ /discount.php last;
rewrite ^/guest-tracking$ /guest-tracking.php last;
rewrite ^/order-history$ /history.php last;
rewrite ^/identity$ /identity.php last;
rewrite ^/brands$ /manufacturer.php last;
rewrite ^/my-account$ /my-account.php last;
rewrite ^/new-products$ /new-products.php last;
rewrite ^/order$ /order.php last;
rewrite ^/order-follow$ /order-follow.php last;
rewrite ^/quick-order$ /order-opc.php last;
rewrite ^/order-slip$ /order-slip.php last;
rewrite ^/password-recovery$ /password.php last;
rewrite ^/prices-drop$ /prices-drop.php last;
rewrite ^/search$ /search.php last;
rewrite ^/sitemap$ /sitemap.php last;
rewrite ^/stores$ /stores.php last;
rewrite ^/supplier$ /supplier.php last;

 

php-fpm.conf:

 

;;;;;;;;;;;;;;;;;;;;;
; FPM Configuration ;
;;;;;;;;;;;;;;;;;;;;;
; All relative paths in this configuration file are relative to PHP's install
; prefix.
; Include one or more files. If glob(3) exists, it is used to include a bunch of
; files from a glob(3) pattern. This directive can be used everywhere in the
; file.
include=/etc/php-fpm.d/*.conf
;;;;;;;;;;;;;;;;;;
; Global Options ;
;;;;;;;;;;;;;;;;;;
[global]
; Pid file
; Default Value: none
pid = /var/run/php-fpm/php-fpm.pid
; Error log file
; Default Value: /var/log/php-fpm.log
error_log = /var/log/php-fpm/error.log
log_level = notice
emergency_restart_threshold = 0
emergency_restart_interval = 1m
process_control_timeout = 5s
[www]
listen = 127.0.0.1:9000
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
user = nginx
group = nginx
listen.mode = 0666
pm = dynamic
pm.max_children = 25
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 4096
request_terminate_timeout = 500s
request_slowlog_timeout = 10s
slowlog = /var/log/php-slow.log
rlimit_files = 4096
rlimit_core = 0
catch_workers_output = yes
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
env[OSTYPE] = $OSTYPE
env[MACHTYPE] = $MACHTYPE
env[MALLOC_CHECK_] = 2

 

Еще можете установить php-eaccelerator из atomic репозитория.

 

Если кто тоже юзает apache для IPSmanager, то настройки его можно снизить, поскольку панели не много нужно:

 

Timeout 20
KeepAlive off
MaxKeepAliveRequests 100
KeepAliveTimeout 2

<IfModule prefork.c>
StartServers	   1
MinSpareServers	1
MaxSpareServers	5
ServerLimit		10
MaxClients		 10
MaxRequestsPerChild  1000
</IfModule>

<IfModule worker.c>
StartServers		 1
MaxClients		 2
MinSpareThreads	 1
MaxSpareThreads	 5
ThreadsPerChild	 10
MaxRequestsPerChild  1000
</IfModule>

 

 

Настройка самого престашопа:

 

Удалите из корня файл .htaccess он там больше не нужен.

 

Зайдите на вкладку Инструменты -> Информация о конфигурации и там если будут какие ошибки, например связанные с правами на папки, то поправьте их по SSH, не забудьте что если меняете права из под root, то владельцем файлов автоматически становится root, так что после сделайте chown -R user:group site.ru чтобы сменить владельца и группу на файлы. Права на файлы 666 а папки 777 нужно поставить, на те что ругается преста.

 

Так же скорее всего у Вас почта в престашопе начнет отправляться не от того адреса, какого Вам нужно, лично у меня так, почта от nginx@hostname.hosting.ru отправляется, нужно на вкладке "Электронная почта" в ручную тогда указать smtp настройки.

Edited by Kerm (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

ставили мы у себя, не увидел разницы от апача, php-frm так же ресурсы ЦП жрет, и проблем больше

мой выбор апач+нгинкс+еакселератор+мемкеш

Edited by gabdr (see edit history)

Share this post


Link to post
Share on other sites

gabdr, можешь пример проблем привести?

слабо верится что пхп жрет столько же сколько ел апач

Share this post


Link to post
Share on other sites

Сравнить с престой на апаче itk с mod_php не могу, но вот что показывает nginx+php-fpm+eaccelerator:

 

 

top - 10:14:32 up 1 day, 23:53,  1 user,  load average: 0.00, 0.00, 0.00Tasks: 149 total,   1 running, 148 sleeping,   0 stopped,   0 zombieCpu0  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stCpu1  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%stMem:   4126016k total,  1290176k used,  2835840k free,   147932k buffersSwap:   522104k total,		0k used,   522104k free,   751660k cached

 

 

 

[root@*****]# free     total        used	   free	 shared	buffers	 cachedMem:	   4126016	1291288	2834728		  0	 147948	 751760-/+ buffers/cache:	 391580	3734436Swap:	   522104		  0	 522104

 

 

На серваке 3 сайта, преста + joomla + статика на html

 

Но это утром, при минимальной нагрузке на сервер....

Edited by Kerm (see edit history)

Share this post


Link to post
Share on other sites

Памяти занято 1.3 Гб при том, что нагрузки совсем нет?

  • Like 1

Share this post


Link to post
Share on other sites

gabdr, зная Вас по вашим постам предположу что все установки и настройки были проделаны Вами в "слепую" основываясь на статьях и советах найденных в google и особо большого опыта у Вас в этом нету (извините если обидел или это не так), у меня у самого не сказать чтобы прям уж супер знания в этом.

 

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

 

Все может зависеть от конкретного хостинга, например у меня был клиент который хостился у каких то рябят арендующих сервер на хатзере и платил им по 90р в месяц за shared хостинг и при этом сайт на престе там работал на много лучше чем на fastvps, colobridge на тарифах в районе 350-600р.

Так же все может зависеть от Ваших настроек в my.cnf, php.ini, php-fpm.conf, eaccelerator.ini, httpd.conf(если стоит апач для ispmanager), вообщем от конфигов, если у Вас все по дефолту или чего еще страшнее по конфигам что нашли в гугле и вставили без понимания что значит каждый параметр, для чего нужен и на что влияет....

 

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

Edited by Kerm (see edit history)

Share this post


Link to post
Share on other sites

Памяти занято 1.3 Гб при том, что нагрузки совсем нет?

 

sors, внимательно смотрим на значения вывода [root@*****]# free

 

А именно в строчку -/+ buffers/cache: где указаны истинные значения, занято всего 391580, т.е. 390мб, все остальное это кеш.

 

Например вот второй мой сервер где 2 интернет магазина, 3 каталога товаров:

 

top - 10:54:03 up 3 days, 17:34,  1 user,  load average: 0.39, 0.69, 0.85
Tasks:  95 total,   1 running,  94 sleeping,   0 stopped,   0 zombie
Cpu0  : 46.4%us, 25.0%sy,  0.0%ni, 17.9%id,  0.0%wa,  0.0%hi,  0.0%si, 10.7%st
Cpu1  : 46.5%us,  5.4%sy,  0.0%ni, 43.4%id,  0.0%wa,  0.0%hi,  0.0%si,  4.7%st
Mem:   4126016k total,  3864304k used,   261712k free,   292408k buffers
Swap:   522072k total,		0k used,   522072k free,  3243800k cached

 

А если сделать free:

 

[root@**** ~]# free
		 total	   used	   free	 shared	buffers	 cached
Mem:	   4126016	3841340	 284676		  0	 292588	3221956
-/+ buffers/cache:	 326796	3799220
Swap:	   522072		  0	 522072
[root@vm4407 ~]#

 

То видно что память занимает всего 326мб, а все остальные 3+ гига это кеш...

(Кстати это сервер с nginx+apache itk, mod_php, eaccelerator)

Edited by Kerm (see edit history)

Share this post


Link to post
Share on other sites

На серваке 3 сайта, преста + joomla + статика на html

 

Но это утром, при минимальной нагрузке на сервер....

 

 

load average: 0.00, 0.00, 0.00

вот это конечно радует) а что за сервак, параметры/хостер?

Kerm, а нагрузи престу вечером когда людей нет на http://loadimpact.com/

и заскринь показатели на 20-50 одновременных "посетителях", интересно как эта конфигурация себя поведет.

Как раз на днях на хетзнер буду перебираться и то же без апача

 

п.с. только если будешь тестить, выбери страницу категории, где хотя бы 10 товаров есть

Edited by SergeyH (see edit history)

Share this post


Link to post
Share on other sites

У меня на majordomo.ru сайты, http://www.majordomo.ru/collocation/dedicated.php

 

2xXeon 2.0GHz CPU (dual core Xeon 5500-series), 4Gb RAM, 150Gb SAS HDD

 

 

На счет хатзера не чего плохого сказать не могу, есть сайт у клиента на среднем vps тарифе, работает не плохо, все настроено и свап и т.д. Очень профессионально установили и настроили весь софт в ручную, поставили ISP панель, даже перенял у них чуток опыта посмотрев файл .bash_history после их настройки сервера...да и за ту же цену что я плачу на majordomo там можно взять довольно крутой типа:

 

Root Server EX 10

 

 

 

http://www.hetzner.de/hosting/produkte_rootserver/ex10

 

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

Share this post


Link to post
Share on other sites

Странныц

load average: 0.00, 0.00, 0.00

вот это конечно радует) а что за сервак, параметры/хостер?

Kerm, а нагрузи престу вечером когда людей нет на http://loadimpact.com/

и заскринь показатели на 20-50 одновременных "посетителях", интересно как эта конфигурация себя поведет.

Как раз на днях на хетзнер буду перебираться и то же без апача

 

п.с. только если будешь тестить, выбери страницу категории, где хотя бы 10 товаров есть

 

Странный сервис, при 50 и 7мб трафе у меня до 5 load average поднялся, после я хотел еще раз попробовать и мне написали типа сайт уже был протестирован, а после ко мне пришел в гости 50мб траф ddos!!! сайт до 25 load everage поднял, страницы где то секунд по 10 открывались..

 

Ща зарегился там может еще раз даст сделать тест, а то я скринов не сделал.

Edited by Kerm (see edit history)

Share this post


Link to post
Share on other sites

Эти данные были с включенным апачем, сейчас отрубил его, совсем другие цифры, скоро будет фотоотчет

Share this post


Link to post
Share on other sites

Значения там все время скакали как на сайте так и в терминале, в цифрах я не особо разобрался, скажи на сколько все плохо или хорошо у меня:

 

 

92807323.jpg

Edited by Kerm (see edit history)

Share this post


Link to post
Share on other sites

Походу не очень гуд, протестил сайт клиента на хатзере, тариф http://www.hetzner.de/en/hosting/produkte_vserver/vq19, там стоит один 3000Mhz проц с 4мб кэша и 64битная CentOS 6, стоит апач itk, php 5.3, mod_php, eaccelerator...и устанавливали они там все.

 

У меня 2x2400Mhz, 2мб кеша и 32х битная ОС, и другой софт..

 

 

 

74434699.jpg

Share this post


Link to post
Share on other sites

Виртуальный хостинг за 900 руб в год

96BYT.png

Share this post


Link to post
Share on other sites

Виртуальный хостинг за 900 руб в год

96BYT.png

 

А на какую страницу был направлен тест?

 

Я его на страницу категории с 12 товарами на ней указывал...на ней так же идет длинный список категорий и под категорий, фильтр blocklayed (как то так). Просто если направить тот сайт на главную страницу или на страницу где одна статика то такой график будет на любом хостинге..

Edited by Kerm (see edit history)

Share this post


Link to post
Share on other sites

По первому графику видно что доходит до 30 клиентов (порядка 120 хитов/сек, судя по скринам) и начинается свистопляска

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

по хостингу - озадачен.. 2 варианта - либо суперкеш, видно на старте графика, либо это же можно трактовать как "упал и отрубился" (там есть еще данные по ответам сервера, в них не 5xx и т.д. случайно?)

Share this post


Link to post
Share on other sites

У меня на majordomo.ru сайты, http://www.majordomo...n/dedicated.php

 

2xXeon 2.0GHz CPU (dual core Xeon 5500-series), 4Gb RAM, 150Gb SAS HDD

 

сперва повелся на dedicated в урл... потом посмотрел внимательнее, обычная виртуалка. Чисто имхо, верить "нашим" хостерам насчет ресурсов - на свой страх и риск, уже писано про это переписано в интернетах.

ddos это вряд-ли)

 

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

 

просто для инфо - у хетзнера в россии есть ресселлер, firstvds то ли fastvps чуть дороже, но рашен ТП + все плюшки внутренних платежей

Edited by SergeyH (see edit history)

Share this post


Link to post
Share on other sites

холивар))

 

top - 23:31:09 up 30 days, 9:40, 1 user, load average: 0.45, 0.40, 0.41

Tasks: 68 total, 5 running, 63 sleeping, 0 stopped, 0 zombie

Cpu(s): 22.6%us, 2.3%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 75.1%st

Mem: 819396k total, 754712k used, 64684k free, 109188k buffers

Swap: 0k total, 0k used, 0k free, 395620k cached

 

апач-итк+нгинкс+еакселератор+мемкеш

Edited by gabdr (see edit history)

Share this post


Link to post
Share on other sites

gabdr, можешь пример проблем привести?

слабо верится что пхп жрет столько же сколько ел апач

 

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

Share this post


Link to post
Share on other sites

Sors, ответь плз на какую страницу сайта был направлен тест, какая версия престы и как там вкладка производительности настроена, а так же какой софт для оптимизации стоит на сервере.

Share this post


Link to post
Share on other sites

судя по выкладкам Сорс'а насчет кеширования модулей etc. могу предположить что на тестовом шопе воплощены все его идеи) но для вирт хостинга все равно выглядит волшебно,

+1 к подробностям этого теста

 

п.с. только что ради интереса еще раз прогнал шоп сидящий на физ.сервере

сервер lamp + nginx + mem, 2 гига и несколько ядер)

график - горизонтальная почти-прямая

LA средний порядка 0.4

мне был интересен именно расход памяти - вырос с 535 до 567 Мб на пике теста

Edited by SergeyH (see edit history)

Share this post


Link to post
Share on other sites

А ты тест на страницу со списком товаров направлял?

Share this post


Link to post
Share on other sites

А ты тест на страницу со списком товаров направлял?

 

да, забыл указать, страница категории, 25 товаров

Share this post


Link to post
Share on other sites

SergeyH, у меня к тебе такой вот вопрос, ты устанавливал memcached примерно так:

yum install memcached php-pecl-memcache, т.е. сам memcache и модуль для php

 

В php.ini менял ли ты чтобы сессии хранились в memcache или нет?

 

И в админке престашопа ты указывал "Использовать кэширование", выбирал из списка memcached и жал сохранить, а добавлял ли ты сервер?? Я к чему это, просто я когда еще и сервер добавлял то у меня весь сайт начинал жутко тормозить и грузить сервер....а если не добавлять не чего то все работает нормально...но я не уверен совсем ли это правильно и работает тогда memcache вообще..

 

Да и прописывал ты чего в nginx связанное с memcached?

Edited by Kerm (see edit history)

Share this post


Link to post
Share on other sites

Я помню ты давно уже "крутишь" эту связку...

 

yum install memcached php-pecl-memcache, т.е. сам memcache и модуль для php

 

юзаю убунту, установил сам мемкеш и php5-memcache, чем модуль из пеар лучше, я хз.

 

В php.ini менял ли ты чтобы сессии хранились в memcache или нет?

 

нет

 

И в админке престашопа ты указывал "Использовать кэширование", выбирал из списка memcached и жал сохранить, а добавлял ли ты сервер?? Я к чему это, просто я когда еще и сервер добавлял то у меня весь сайт начинал жутко тормозить и грузить сервер....а если не добавлять не чего то все работает нормально...но я не уверен совсем ли это правильно и работает тогда memcache вообще..

 

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

посмотри запущен ли сервер (в твоем дистре может быть ps -a команда)

ps a | grep memc

должен быть результат вида

/usr/bin/memcached -m 64 -p 11211 -u www-data -l 127.0.0.1

(только что полез проверить и оказалось что я забыл стартануть мемкеш, сцуко, получается уже неделю-две сервер пашет без него)

Имхо, тормоза могут быть связаны с виртуальной ОЗУ которую дают тебе в впс, рекомендую почитать подробности насчет виртуализации openvz которую юзает большинство хостеров, в частности про память.

 

Да и прописывал ты чего в nginx связанное с memcached?

Нет, нжинкс сейчас отдает только статику

Share this post


Link to post
Share on other sites

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

Edited by Kerm (see edit history)

Share this post


Link to post
Share on other sites
[root@vm ~]# ps -e | grep memcached
 796 ?		00:00:00 memcached

[root@vm~]# php -i | grep memcache
/etc/php.d/memcache.ini,
memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 32768 => 32768
memcache.compress_threshold => 20000 => 20000
memcache.default_port => 11211 => 11211
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => consistent => consistent
memcache.lock_timeout => 15 => 15
memcache.max_failover_attempts => 20 => 20
memcache.protocol => ascii => ascii
memcache.redundancy => 1 => 1
memcache.session_redundancy => 2 => 2
Registered save handlers => files user memcache sqlite

[root@vm10654 ~]# memcached-tool 127.0.0.1:11211 stats
#127.0.0.1:11211   Field	   Value
accepting_conns		   1
auth_cmds		   0
auth_errors		   0
bytes		   0
bytes_read		   7
bytes_written		   0
cas_badval		   0
cas_hits		   0
cas_misses		   0
cmd_flush		   0
cmd_get		   0
cmd_set		   0
cmd_touch		   0
conn_yields		   0
connection_structures		   6
curr_connections		   5
curr_items		   0
decr_hits		   0
decr_misses		   0
delete_hits		   0
delete_misses		   0
evicted_unfetched		   0
evictions		   0
expired_unfetched		   0
get_misses		   0
hash_bytes	  262144
hash_is_expanding		   0
hash_power_level		  16
incr_hits		   0
incr_misses		   0
libevent 1.4.13-stable
limit_maxbytes   536870912
listen_disabled_num		   0
pid		 796
pointer_size		  32
reclaimed		   0
reserved_fds		  20
rusage_system	0.168010
rusage_user	0.016001
threads		   4
time  1338141675
total_connections		   6
total_items		   0
touch_hits		   0
touch_misses		   0
uptime		5993
version	  1.4.13

[root@ ~]# ps ax
796 ?        Ssl    0:00 memcached -d -p 11211 -u memcached -m 512 -c 1024 -P

Edited by Kerm (see edit history)

Share this post


Link to post
Share on other sites

Да и при всем при этом сильно возрастает load average!

Share this post


Link to post
Share on other sites

xen? гм. ну я бы с хостером пообщался тогда, хз.

прогнал только что еще раз тестом свой с включенным мемкешем, все также, только раньше пики были до 0.8 в опред моменты, сейчас 0.5

Share this post


Link to post
Share on other sites

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

Edited by Kerm (see edit history)

Share this post


Link to post
Share on other sites

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

 

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

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

Share this post


Link to post
Share on other sites

Может дело в самой cms и попробовать поставить с нуля..

Edited by Kerm (see edit history)

Share this post


Link to post
Share on other sites

SergeyH, а у тебя тип БД InnoDB?

Share this post


Link to post
Share on other sites

Установил на двух серверах memcached + php-pecl-memcache, там где apache itk, mod_php работает все нормально, где php-fpm тормоза причем начинает грузить проц php-fpm именно когда включаешь memcache, может дело в магазе или в php-fpm...

Share this post


Link to post
Share on other sites

Тестировал на главной странице, но есть подозрение, что хостер включает защиту от доса и вырубает трафик от этого сервиса.

Share this post


Link to post
Share on other sites

Добрый день господа.

 

Понимаю что тема старая, но наверняка актуальная.

Вот у меня тоже появилась идея перенести prestashop с apache на nginx.

Понимаю что это гиморой, но все же....

 

Версия магазина обновилась, да и nginx тоже.

Не подскажете какие новые грабли появились, может Ваши конфиги обновились и т.д.

И вообще стоит ли оно того ...

 

Цель - ускорить магазин.

По идее под nginx при высоких нагрузках магазин должен работать веселее ...

Share this post


Link to post
Share on other sites

все работает, грабли на память не помню) просто разворачивай тестовое рабочее окружение и на нем обкатай перед запуском.

Share this post


Link to post
Share on other sites

Подскажите пжл, ошибка 500, никак не могу решить... сперва была 413, решил - прописал client_max_body_size 100M; в nginx.conf

500 никак не осилю... не могу загружать изображения норм размером...

 

логи, хз от туда взял или нет.. /домен.com.error.log

2015/12/11 23:23:32 [warn] 4311#0: *263 a client request body is buffered to a temporary file /var/lib/nginx/tmp/client_body/0000000030, client: айпитут, server: домен.com, request: "POST /atut1st/index.php?controller=AdminModules&configure=steasycontent&tab_module=front_office_features&module_name=steasycontent&token=4f9abdcae4ab695042b4c6b423c96a83 HTTP/1.1", host: "домен.com", referrer: "http://домен.com/atut1st/index.php?controller=AdminModules&configure=steasycontent&id_st_easy_content=12&updatesteasycontent&token=4f9abdcae4ab695042b4c6b423c96a83"
[Fri Dec 11 23:23:32.418135 2015] [fcgid:warn] [pid 4308] [client айпитут:50754] mod_fcgid: HTTP request length 134105 (so far) exceeds MaxRequestLen (131072), referer: http://домен.com/atut1st/index.php?controller=AdminModules&configure=steasycontent&id_st_easy_content=12&updatesteasycontent&token=4f9abdcae4ab695042b4c6b423c96a83

 

 

Есть мысли?

Edited by PapiDi (see edit history)

Share this post


Link to post
Share on other sites

Решил:

 

Если появляется ошибка mod_fcgid: HTTP request length хххххх (so far) exceeds MaxRequestLen (хххххх), referer: ххх когда PHPработает как CGI
Необходимо в файл конфигурации fcgid.conf добавить строку

Код:  
FcgidMaxRequestLen 2097152

2097152 = 2 МБ
и перезагрузить сервер

файл конфигурации для СentOs находится
/etc/httpd/conf.d/fcgid.conf

Share this post


Link to post
Share on other sites

Вы не сталкивались с проблемой доступа к некоторым разделам админки в 1.7.4.4? 
Например на этот адрес заходит без проблем:

/admin/index.php?controller=AdminEmails


А на этот адрес выкидывает в 404 ошибку:

/admin/index.php/configure/advanced/performance


Предполагаю что загвоздка в настройке ngnix или php-fpm? Форумы лапатил, настройки всякие пробовал - весь день борюсь, не могу справиться. У меня openvz \ centos7 x64 через vestaCP: ngnix php-fpm и тд.

Share this post


Link to post
Share on other sites
On 12/6/2018 at 1:38 AM, Lev said:

Вы не сталкивались с проблемой доступа к некоторым разделам админки в 1.7.4.4? 
Например на этот адрес заходит без проблем:


/admin/index.php?controller=AdminEmails


А на этот адрес выкидывает в 404 ошибку:


/admin/index.php/configure/advanced/performance


Предполагаю что загвоздка в настройке ngnix или php-fpm? Форумы лапатил, настройки всякие пробовал - весь день борюсь, не могу справиться. У меня openvz \ centos7 x64 через vestaCP: ngnix php-fpm и тд.

Здравствуйте. У меня тоже nginx + php-fmp полет отличный, могу посмотреть ваш конфиг, нужен будет тим виер.

  • Haha 1

Share this post


Link to post
Share on other sites

Да всё норм, разобрался в косячном конфиге nginx.

Share this post


Link to post
Share on other sites
On 12/17/2018 at 3:38 PM, Lev said:

Да всё норм, разобрался в косячном конфиге nginx.

Не подскажите в чём дело было?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More