- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Нужен совет бывалых.
Имеется сервер:
S5 Dell UK
Quad Core 3.30Ghz (E3-1230v2)
32GB DDR3 ECC Memory
2 x 600GB SAS 15,000 RPM + 240GB Cachecade
H700 Raid Controller with BBU - Raid 0
4 Usable IP Addresses (RIPE /29)
DRAC Enterprise (Virtual KVM)
Unlimited
1Gbps Unmetered Port - 1Gbps Guaranteed
Debian Linux 6
На нём вертится сайт, посетителей ~ 5500, просмотров ~ 30000, главная задача сайта онлайн просмотр видео, средний вес которых 150Mb.
Нужно порекомендовать, чего не хватает в конфиге nginx или может наоборот, вот сам конфиг:
user www-data;
worker_processes 8;
#----------------Установка логов----------------------------------
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include 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"';
#sendfile on;
client_max_body_size 5m;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#limit_req_zone $binary_remote_addr zone=one:10m rate=25r/s;
# Включение модуля для сжатия
gzip on;
# Минимальная длина ответа, при которой модуль будет жать, в байтах
gzip_min_length 1000;
# Разрешить сжатие для всех проксированных запросов
gzip_proxied any;
# MIME-типы которые необходимо жать (text/html указывать не надо, он сжимается всегда)
gzip_types text/css application/x-javascript text/plain text/xml image/x-icon;
# Запрещает сжатие ответа методом gzip для IE6
gzip_disable "msie6";
# Уровень gzip-компрессии
gzip_comp_level 8;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name domain.ru www.domain.ru;
access_log off;
root /home/user/www/domain.ru;
charset utf8;
location / {
index index.php;
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js|docx|odt|7z|avi|mpeg|mpg|mp3|ogg|mov)$ {
#limit_req zone=one burst=30;
error_page 404 = @fallback;
}
location @fallback {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ \.flv$ {
flv;
limit_rate 300k;
limit_rate_after 1m;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ /\.ht {
deny all;
}
}
#include /usr/local/ispmgr/etc/nginx.domain;
}
Сходу могу предложить поднять worker_connections. В остальном числа с потолка брать сложновато.
user www-data;
worker_processes 8;
worker_rlimit_nofile 10240;
pid /var/run/nginx.pid;
events {
worker_connections 4096;
use epoll;
}
...
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
error_log /var/log/nginx/error.log;
location ~ \.flv$ {
root /home/user/www/domain.ru;
directio 4m;
flv;
limit_rate 300k;
limit_rate_after 1m;
}
Статику лучше отдавать nginx
root /home/user/www/domain.ru;
}
Это стоит в конц самый запихнуть.
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
______________________________________
worker_processes 8;
worker_rlimit_nofile 10240;
pid /var/run/nginx.pid;
events {
worker_connections 4096;
use epoll;
}
http {
include 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"';
error_log /var/log/nginx/error.log;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
gzip on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/css application/x-javascript text/plain text/xml image/x-icon;
gzip_disable "msie6";
gzip_comp_level 6;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name domain.ru www.domain.ru;
access_log off;
root /home/user/www/domain.ru;
charset utf8;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ /\.ht {
deny all;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js|docx|odt|7z|avi|mpeg|mpg|mp3|ogg|mov)$ {
root /home/user/www/domain.ru;
expires 1d;
error_page 404 = @fallback;
}
location ~ \.flv$ {
root /home/user/www/domain.ru;
directio 4m;
flv;
limit_rate 300k;
limit_rate_after 1m;
}
location / {
index index.php;
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location @fallback {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
Спасибо за столь развернутый совет, но вот можешь объяснить, зачем location root /home/user/www/domain.ru; в
location ~ \.flv$ {
root /home/user/www/domain.ru;
directio 4m;
flv;
limit_rate 300k;
limit_rate_after 1m;
}
и 300k достаточно для меня?
На сколько я помню, в каждом новом location - под статику, нужно указывать root диру откуда nginx будет брать файлы.
Впрочем, можно проверить, не указать в location -> root. Далее по логам посмотреть, кто отдает пикчи -> nginx или apache.
limit_rate -> ограничивает скорость передачи ответа клиент. Тут исходя из битрейта видео. Думаю, 300k ~ 500k будет нормально.
limit_rate_after -> задаёт начальный объём данных, после передачи которого начинает ограничиваться скорость передачи ответа клиенту.
Здесь имеет смысл поставить 1-5m, чтобы пользователь не ждал, когда загружаются первые минуты видео.
root наследуется от вышестоящего уровня.
gzip_comp_level 8;
Это бесполезно много, хватит 4-5, при более сильном сжатии нагрузка заметно больше, а качество сжатия не существенно улучшается.