- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте.
Помогите подобрать оптимальный конфиг для nginx.
Intel Xeon E3-1275v5
4x RAM 16384 MB DDR4 ECC
2x SSD SATA 480 GB Datacenter
Порт 1 GBit/s
Debian 9 (nginx / php 7.3 / php-fpm / MySQL 5.7),
Несколько сайтов на WordPress.
На страницах в основном фото, 50-100 шт.
Именно эти фото грузятся относительно медленно.
а) заюзать http2
б) может там рисунки по мегабайту?
в) ленивая загрузка рисунков
г) проверьте каким-то средством мониторинга, нету ли каких бутылочных горлышек.
возможно нужно тюнить ОС, нету ли ошибок при больших нагрузках.
Так у вас всё отправляется на апатч. С чего ВДРУГ вы решили, что проблема в nginx? :)
а) заюзать http2
б) может там рисунки по мегабайту?
в) ленивая загрузка рисунков
г) проверьте каким-то средством мониторинга, нету ли каких бутылочных горлышек.
возможно нужно тюнить ОС, нету ли ошибок при больших нагрузках.
а) используется, прописано отдельно для конфига домена
б) фото сжаты, по 100-200 кб
в) Что с ленивой что без. Пробовал, без разницы.
по gmetrix все более мение, ниже скрин дам.
Что знал проверил, сам сервер вообще такое чуство что отдыхает...
---------- Добавлено 17.12.2019 в 00:32 ----------
Так у вас всё отправляется на апатч. С чего ВДРУГ вы решили, что проблема в nginx? :)
Я не знаю в чем проблема, предположил что где то накосячил.
Почему все на апач? Вроде как у меня он не задействован.
Тут отдельный конфиг под каждый домен
server {
server_name site.ru www.site.ru;
charset off;
index index.php;
disable_symlinks if_not_owner from=$root_path;
include /etc/nginx/vhosts-includes/*.conf;
include /etc/nginx/vhosts-resources/site.ru/*.conf;
access_log /var/www/httpd-logs/site.ru.access.log;
error_log /var/www/httpd-logs/site.ru.error.log notice;
ssi on;
set $root_path /var/www/user/data/www/site.ru;
root $root_path;
gzip on;
gzip_comp_level 5;
gzip_types text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/bmp application/java application/msword application/vnd.ms-fontobject application/x-msdownload image/x-icon image/webp application/json application/vnd.ms-access application/vnd.ms-project application/x-font-otf application/vnd.ms-opentype application/vnd.oasis.opendocument.database application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.formula application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.text audio/ogg application/pdf application/vnd.ms-powerpoint application/x-shockwave-flash image/tiff application/x-font-ttf audio/wav application/vnd.ms-write application/font-woff application/font-woff2 application/vnd.ms-excel;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
location / {
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
location = /rss.xml {
rewrite ^ /index.php?q=rss.xml;
}
# BEGIN W3TC Browser Cache
location ~ \.(css|htc|less|js|js2|js3|js4)$ {
expires 31536000s;
etag on;
if_modified_since exact;
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public";
try_files $uri $uri/ $uri.html /index.php?$args;
}
location ~ \.(html|htm|rtf|rtx|svg|txt|xsd|xsl|xml)$ {
expires 3600s;
etag on;
if_modified_since exact;
add_header Pragma "public";
add_header Cache-Control "max-age=3600, public";
try_files $uri $uri/ $uri.html /index.php?$args;
}
location ~ \.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|webp|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|_otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|_ttf|wav|wma|wri|woff|woff2|xla|xls|xlsx|xlt|xlw|zip)$ {
root $root_path;
valid_referers none blocked server_names ~(site|yandex|google|yahoo|bing|facebook|subscribe|feedburner|mail|rambler|nigma|ask|qip|bing);
if ($invalid_referer) {
return 403;
}
expires 31536000s;
etag on;
if_modified_since exact;
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public";
try_files $uri $uri/ $uri.html /index.php?$args;
}
location ~ \.(bmp|class|doc|docx|eot|exe|ico|webp|json|mdb|mpp|otf|_otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|pot|pps|ppt|pptx|svg|svgz|swf|tif|tiff|ttf|ttc|_ttf|wav|wri|woff|woff2|xla|xls|xlsx|xlt|xlw)$ {
etag off;
if_modified_since off;
try_files $uri $uri/ $uri.html /index.php?$args;
}
# END W3TC Browser Cache
# BEGIN W3TC Minify core
rewrite ^/wp-content/cache/minify/ /index.php last;
# END W3TC Minify core
}
location @php {
fastcgi_index index.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@site.ru";
fastcgi_pass unix:/var/www/php-fpm/user.sock;
fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_read_timeout 5000;
fastcgi_buffer_size 128k;
fastcgi_buffers 4096 64k;
}
return 301 https://$host:443$request_uri;
gzip_disable "msie6";
expires 365s;
listen IP:80;
listen [IP]:80;
}
server {
server_name site.ru www.site.ru;
ssl_certificate "/var/www/httpd-cert/user/site.ru_le1.crtca";
ssl_certificate_key "/var/www/httpd-cert/user/site.ru_le1.key";
ssl_dhparam /etc/ssl/certs/dhparam4096.pem;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
ssl_session_timeout 24h;
ssl_session_cache shared:SSL:2m;
ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
charset off;
index index.php;
disable_symlinks if_not_owner from=$root_path;
include /etc/nginx/vhosts-includes/*.conf;
include /etc/nginx/vhosts-resources/site.ru/*.conf;
access_log /var/www/httpd-logs/site.ru.access.log;
error_log /var/www/httpd-logs/site.ru.error.log notice;
ssi on;
set $root_path /var/www/user/data/www/site.ru;
root $root_path;
listen IP:443 ssl http2;
listen [IP]:443 ssl http2;
gzip on;
gzip_comp_level 5;
gzip_disable "msie6";
gzip_types text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/bmp application/java application/msword application/vnd.ms-fontobject application/x-msdownload image/x-icon image/webp application/json application/vnd.ms-access application/vnd.ms-project application/x-font-otf application/vnd.ms-opentype application/vnd.oasis.opendocument.database application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.formula application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.text audio/ogg application/pdf application/vnd.ms-powerpoint application/x-shockwave-flash image/tiff application/x-font-ttf audio/wav application/vnd.ms-write application/font-woff application/font-woff2 application/vnd.ms-excel;
expires 365s;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
location / {
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location = /rss.xml {
rewrite ^ /index.php?q=rss.xml;
}
}
# BEGIN W3TC Browser Cache
location ~ \.(css|htc|less|js|js2|js3|js4)$ {
expires 31536000s;
etag on;
if_modified_since exact;
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public";
try_files $uri $uri/ $uri.html /index.php?$args;
}
location ~ \.(html|htm|rtf|rtx|svg|txt|xsd|xsl|xml)$ {
expires 3600s;
etag on;
if_modified_since exact;
add_header Pragma "public";
add_header Cache-Control "max-age=3600, public";
try_files $uri $uri/ $uri.html /index.php?$args;
}
location ~ \.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|webp|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|_otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|_ttf|wav|wma|wri|woff|woff2|xla|xls|xlsx|xlt|xlw|zip)$ {
root $root_path;
valid_referers none blocked server_names ~(site|yandex|google|yahoo|bing|facebook|subscribe|feedburner|mail|rambler|nigma|ask|qip|bing);
if ($invalid_referer) {
return 403;
}
expires 31536000s;
etag on;
if_modified_since exact;
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public";
try_files $uri $uri/ $uri.html /index.php?$args;
}
location ~ \.(bmp|class|doc|docx|eot|exe|ico|webp|json|mdb|mpp|otf|_otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|pot|pps|ppt|pptx|svg|svgz|swf|tif|tiff|ttf|ttc|_ttf|wav|wri|woff|woff2|xla|xls|xlsx|xlt|xlw)$ {
etag off;
if_modified_since off;
try_files $uri $uri/ $uri.html /index.php?$args;
}
# END W3TC Browser Cache
# BEGIN W3TC Minify core
rewrite ^/wp-content/cache/minify/ /index.php last;
# END W3TC Minify core
location @php {
fastcgi_index index.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@site.ru";
fastcgi_pass unix:/var/www/php-fpm/user.sock;
fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_read_timeout 5000;
fastcgi_buffer_size 128k;
fastcgi_buffers 4096 64k;
}
}
Дело в том что htop и atop показывают что сервер как бы вообще отдыхает. Нет нагрузки но сайты тупят. Канал тоже загружается на пару Мб.
Здесь скрины немного с другого сервера, но суть та же. Таких у меня 4. Проблема одинаковая. Сайти подтупливают а нагрузки как таковой и нет.
Поэтому и думаю что гдето что то я не так настроил, тоисть не использую полностью ресурсы.
Или же это такая проблема у хетзнера, тойсть переезд на локацию поближе к ЦА, Россия, СНГ, решит ли прблему.
Я у хетзнера уже лет так 3-4, проблем никога подобных не было. Все открывалось бысто на серверах попроще.
Я бы начал с малого:
1. делаем на nginx чистый домен/сабдомен, без проксирование, без try files и прочего.
2. Делаем там одну простую статическую страницу с десятком фотографий и на ней тестируем.
Сейчас по конфигам свыше вообще не понятно, что откуда грузит.
P.S. простой конфиг - это как
Без урла трудно судить, что там "подтупливает".
тут проблема не в нджинкс, а в двигателе или в самомом серевере. Ну или картинки по 10 мб
Почему начал копать в сторону Ngnix? Так он отдает эти самые картинки, правильно?
По дискам скорость нормальная, SSD, это откидываем. По top видно что на них нагрузка минимальна.
Ширина канала тоже не забита, и скорости хватает.
Картинки все сжаты, там по gmetrix видно общий вес страницы. В общем страницы по 7-10 мб.
К сожалению, для себя же, урл дать не могу.
На данный момент подправил немного конфиг ngnix, грузится нормально стало. Но это под ночь и под утро трафик спал, поэтому рано судить.
вообще 50-100 фото на странице это много. Тут как вариант использовать какой нибудь скрипт, который будет подгружать картинки по мере необходимости.
Включите медленные запросы мускуля. Время выставите на 0,5 сек. и смотрите.
По описание мне первое что на ум пришло - кривые долгие запросы.