nginx « First byte time response и Nginx+PHP-FPM
Доброго времени суток!
Зашел в Pingdom, обратил внимание, что кривая на графике responsive time скакнула вверх, от 250 мс до 1400 мс. VPS на DigitalOcean, тариф 512мб, 2.0Гц, SSD.
Сделал тест на webpagetest.org, наибольшее значение из responsive time - это first byte time response (в данный момент около 2 сек).
Сделал html-страничку на этом же сервере - first byte time response = 25 мс.
Сделал php-файл с простым перебором массива по foreach и выводом echo каждого элемента - first byte time response = 2000 мс.
Собственно, что делал раньше. По криворукости затер конфиг nginx для домена (бэкапов естественно не сделал), восстанавливал по памяти.
Нагрузки на VPS нет, процессор больше 5% не нагружается, агрессивных записей/чтения на диск нет, канал свободный.
Могу предположить, что проблема с php, как видно по опыту выше. Или с новым конфигом.
Подскажите, пожалуйста, куда копать?
Конфиг nginx для домена:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .c.geshi_code {font-family:monospace;} .c.geshi_code .imp {font-weight: bold; color: red;} .c.geshi_code .kw1 {color: #b1b100;} .c.geshi_code .kw2 {color: #000000; font-weight: bold;} .c.geshi_code .kw3 {color: #000066;} .c.geshi_code .kw4 {color: #993333;} .c.geshi_code .co1 {color: #666666; font-style: italic;} .c.geshi_code .co2 {color: #339933;} .c.geshi_code .coMULTI {color: #808080; font-style: italic;} .c.geshi_code .es0 {color: #000099; font-weight: bold;} .c.geshi_code .es1 {color: #000099; font-weight: bold;} .c.geshi_code .es2 {color: #660099; font-weight: bold;} .c.geshi_code .es3 {color: #660099; font-weight: bold;} .c.geshi_code .es4 {color: #660099; font-weight: bold;} .c.geshi_code .es5 {color: #006699; font-weight: bold;} .c.geshi_code .br0 {color: #009900;} .c.geshi_code .sy0 {color: #339933;} .c.geshi_code .st0 {color: #ff0000;} .c.geshi_code .nu0 {color: #0000dd;} .c.geshi_code .nu6 {color: #208080;} .c.geshi_code .nu8 {color: #208080;} .c.geshi_code .nu12 {color: #208080;} .c.geshi_code .nu16 {color:#800080;} .c.geshi_code .nu17 {color:#800080;} .c.geshi_code .nu18 {color:#800080;} .c.geshi_code .nu19 {color:#800080;} .c.geshi_code .me1 {color: #202020;} .c.geshi_code .me2 {color: #202020;} .c.geshi_code span.xtra { display:block; }
Зашел в Pingdom, обратил внимание, что кривая на графике responsive time скакнула вверх, от 250 мс до 1400 мс. VPS на DigitalOcean, тариф 512мб, 2.0Гц, SSD.
Сделал тест на webpagetest.org, наибольшее значение из responsive time - это first byte time response (в данный момент около 2 сек).
Сделал html-страничку на этом же сервере - first byte time response = 25 мс.
Сделал php-файл с простым перебором массива по foreach и выводом echo каждого элемента - first byte time response = 2000 мс.
Собственно, что делал раньше. По криворукости затер конфиг nginx для домена (бэкапов естественно не сделал), восстанавливал по памяти.
Нагрузки на VPS нет, процессор больше 5% не нагружается, агрессивных записей/чтения на диск нет, канал свободный.
Могу предположить, что проблема с php, как видно по опыту выше. Или с новым конфигом.
Подскажите, пожалуйста, куда копать?
Конфиг nginx для домена:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .c.geshi_code {font-family:monospace;} .c.geshi_code .imp {font-weight: bold; color: red;} .c.geshi_code .kw1 {color: #b1b100;} .c.geshi_code .kw2 {color: #000000; font-weight: bold;} .c.geshi_code .kw3 {color: #000066;} .c.geshi_code .kw4 {color: #993333;} .c.geshi_code .co1 {color: #666666; font-style: italic;} .c.geshi_code .co2 {color: #339933;} .c.geshi_code .coMULTI {color: #808080; font-style: italic;} .c.geshi_code .es0 {color: #000099; font-weight: bold;} .c.geshi_code .es1 {color: #000099; font-weight: bold;} .c.geshi_code .es2 {color: #660099; font-weight: bold;} .c.geshi_code .es3 {color: #660099; font-weight: bold;} .c.geshi_code .es4 {color: #660099; font-weight: bold;} .c.geshi_code .es5 {color: #006699; font-weight: bold;} .c.geshi_code .br0 {color: #009900;} .c.geshi_code .sy0 {color: #339933;} .c.geshi_code .st0 {color: #ff0000;} .c.geshi_code .nu0 {color: #0000dd;} .c.geshi_code .nu6 {color: #208080;} .c.geshi_code .nu8 {color: #208080;} .c.geshi_code .nu12 {color: #208080;} .c.geshi_code .nu16 {color:#800080;} .c.geshi_code .nu17 {color:#800080;} .c.geshi_code .nu18 {color:#800080;} .c.geshi_code .nu19 {color:#800080;} .c.geshi_code .me1 {color: #202020;} .c.geshi_code .me2 {color: #202020;} .c.geshi_code span.xtra { display:block; }
#редирект со старого домена + параметр для модуля на новом сайте
server {
listen 80;
server_name www.oldsite.ru oldsite.ru;
return 301 https://newsite.com$request_uri?from=oldsite.ru;
}
server {
listen 80;
server_name www.newsite.com;
return 301 https://newsite.com$request_uri;
}
server {
server_name newsite.com;
index index.php index.html;
access_log /path/to/access.log;
error_log /path/to/error.log;
listen 443 ssl;
keepalive_timeout 60;
ssl_certificate /path/to/newsite.crt;
ssl_certificate_key/path/to/newsite.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "RC4:HIGH:!aNULL:!MD5:!kEDH";
add_header Strict-Transport-Security 'max-age=604800';
charset utf-8;
autoindex off;
#rewrite для Codeigniter
location / {
root /var/www/newsite.ru;
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
}
location ~ .php$ {
root /var/www/newsite.ru;
include fastcgi_params;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
}
location ~* "/.ht" {
deny all;
return 404;
}
location ~* .(js|css|png|jpg|jpeg|gif)$ {
root /var/www/newsite.ru;
expires 31536000s;
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public, must-revalidate, proxy-revalidate";
add_header X-Powered-By "SexyServer";
log_not_found off;
}
gzip on;
gzip_http_version 1.0;
gzip_comp_level 9;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
}
server {
listen 80;
server_name www.oldsite.ru oldsite.ru;
return 301 https://newsite.com$request_uri?from=oldsite.ru;
}
server {
listen 80;
server_name www.newsite.com;
return 301 https://newsite.com$request_uri;
}
server {
server_name newsite.com;
index index.php index.html;
access_log /path/to/access.log;
error_log /path/to/error.log;
listen 443 ssl;
keepalive_timeout 60;
ssl_certificate /path/to/newsite.crt;
ssl_certificate_key/path/to/newsite.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "RC4:HIGH:!aNULL:!MD5:!kEDH";
add_header Strict-Transport-Security 'max-age=604800';
charset utf-8;
autoindex off;
#rewrite для Codeigniter
location / {
root /var/www/newsite.ru;
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
}
location ~ .php$ {
root /var/www/newsite.ru;
include fastcgi_params;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
}
location ~* "/.ht" {
deny all;
return 404;
}
location ~* .(js|css|png|jpg|jpeg|gif)$ {
root /var/www/newsite.ru;
expires 31536000s;
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public, must-revalidate, proxy-revalidate";
add_header X-Powered-By "SexyServer";
log_not_found off;
}
gzip on;
gzip_http_version 1.0;
gzip_comp_level 9;
gzip_proxied any;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
}
1 ответов
Неплохо было бы еще конфиг php-fpm(и пула) видеть
Проверь так же курлом TTFB локально на сервере, опции:
-w "Connect: %{time_connect} TTFB: %{time_starttransfer} Total time: %{time_total}"
+ временно сделай plain http вхост и проверь, что это не SSL твой ttfb сжирает
Вот тут про это рассказывается
+ временно сделай plain http вхост и проверь, что это не SSL твой ttfb сжирает
Вот тут про это рассказывается