Вечер добрый.
Есть поддомен static.mysite.com
временами от него долгий отклик. На нём лежат аватарки и прочие картинки.
Но нет на сайте mysite.com бывает идёт долгое ожидание от static.mysite.com (прогрузки img)
Я сначала думал надо проксить как с apache делали. Но даже если залить картинку 16х16px весом 5кб на static.mysite.com и перейти в браузере
static.mysite.com/image16.png и 10 раз нажать f5 в 7 случаях она отобразиться сразу а в 3х будет долго прогружаться (ожидание) как буд то чёто затупливает=(
nginx.conf:user apache;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
timer_resolution 100ms;
worker_rlimit_nofile 131072;
worker_processes 8;
events {
worker_connections 65536;
multi_accept on;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
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 /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
server_tokens off;
reset_timedout_connection on;
gzip on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain application/xml application/x-javascript text/javascript text/css text/json;
gzip_disable "msie6";
gzip_comp_level 3;
include /etc/nginx/conf.d/*.conf;
include /usr/local/ispmgr/etc/nginx.domain;
client_max_body_size 16M;
client_body_buffer_size 128k;
log_format isp '$bytes_sent $request_length';
}
static.mysite.com.conf:server {
server_name static.mysite.com;
root /var/www/user/data/www/static.mysite.com;
listen xxx.xxx.xxx.xx;
charset WINDOWS-1251;
#disable_symlinks if_not_owner from=$root_path;
set $root_path /var/www/user/data/www/static.mysite.com;
error_page 403 400 404 = http://mysite.com/404.php;
location ~* ^.+\.(jpg|jpeg|gif|png|ico|svg|js|css|txt|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
#access_log off;
expires 7d;
}
}
default.conf:server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
ping в норме:C:\Users\Велик505>ping static.mysite.com
Обмен пакетами с static.mysite.com [xxx.xxx.xxx.xx] с 32 байтами данных:
Ответ от xxx.xxx.xxx.xx: число байт=32 время=123мс TTL=46
Ответ от xxx.xxx.xxx.xx: число байт=32 время=117мс TTL=46
Ответ от xxx.xxx.xxx.xx: число байт=32 время=117мс TTL=46
Ответ от xxx.xxx.xxx.xx: число байт=32 время=117мс TTL=46
Статистика Ping для xxx.xxx.xxx.xx:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 117мсек, Максимальное = 123 мсек, Среднее = 118 мсек
В логах nginx единственное что вижу что мой крон скрипт не может выполниться (wget) по http протоколу
2015/12/12 12:01:01 [error] 25722#0: *39936015 upstream timed out (110: Connection timed out) while reading response header from upstream, client: xxx.xxx.xxx.xx, server: mysite.com, request: "GET /cron_desk/cron_optimizetable.php?key=dsadsa432rewrew34 HTTP/1.0", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock", host: "mysite.com"
Хотя там идёт 5 таблиц optimize 5 сек перерыв следующие 5 таблиц optimize и тд.
$i = 0;
$table_r = mysql_query("SHOW TABLES FROM `".$bd_base."`");
while ($tb_r=mysql_fetch_row($table_r)){$i++;
$status = mysql_query("OPTIMIZE TABLE `".trim($tb_r[0])."`");
if($i == 5){sleep(5);$i=0;}
Ну вообщем да минуту выходит на задание optimize all tables. Как исправить эту ошибку чтобы времени хватало? и поправить отклик?
Ну крон я тут не прав конечно его лучше я на интерпретатор пыха кину.
Ну а что делать с подтупливанием поддомена?
ping -l 1400 -t static.mysite.com среднее 120
я ещё раз говорю даже не выводом на основном домене а просто перейти на статический домен картинку 5кб static.mysite.com/kartinka.png может быть долгий отклик секунд 6-7 как буд-то щас nginx уйдёт в 502ую. (нагрузки в этот момент на него нет).
с основным доменом такой проблемы нет хотя они на одном айпи и серваке и ping от основного домена такой же как и от поддомена соответственно но он не тупит а поддомен тупит.
Забыл отписаться давно уже решел. В коменте под спойлером решений.