Welcome! Log In Create A New Profile

Advanced

Nginx перед IIS

May 31, 2011 03:46PM
Использую IIS для стриминга .mp4 и .flv файлов. Главное его преимущество – стабильная работа и абсолютно не требует ресурсов. Да от беда, IIS не может: скорость резать на одно подключение; Довнлоад мастер блокировать; ссылки с чужих сайтов на файлы блокировать и т.д.

Можно воспользоваться nginx, но тут тоже беда. Nginx может отдавать только .flv файлы. Появилась идея отдавать .flv через Nginx а файлы .mp4 через прокси (backend) направлять на IIS. Попробовал, все работает замечательно. Правда чувствуется нагрузка на проц да и оперативку подкушивает. Большую нагрузку (250-500 онлайн просмотров) еще не давал. Основные задачи которые хотелось бы возложить на Nginx:

- блокировать ссылки на видео с чужих сайтов;

- блокировать не желательные user-agent;

- резать скорость на один поток видео;

- ограничить количество потоков на один IP адрес;

Но из перечисленных пунктов у меня получилось реализовать только блокировку по user-agent.

Скажите пожалуйста, возможно под Виндовс Nginx реализовать оставшиеся 3 пункта? Если да то ниже мой конфиг (на определенном модернизации) подскажите что я не так делаю:



worker_processes 1;

events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;
limit_zone one $binary_remote_addr 10m;

sendfile on;
#sendfile_max_chunk 1m;
#tcp_nopush on;

# keepalive_timeout 0;
keepalive_timeout 30;

upstream backend {
server 127.0.0.1:83;
}

server {
listen 81;
server_name localhost;

location /nginx_status {
stub_status on;
access_log on;
}

#valid_referers none blocked localhost;
#if ($invalid_referer) {
#return 503;
#}

# Блокируем менеджеры загрузки
if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
return 503;
}

location ~* \.(html|flv)$ {
root Z:/media;
index index.html index.htm;

limit_rate_after 5m;
limit_rate 2m;
limit_conn one 1;

if ($http_user_agent ~ MozillaXXX/5.0) {
return 503;
}

valid_referers none blocked localhost;
if ($invalid_referer) {
return 503;
}

error_page 403 404 http://mysite.ru:83/filmi.mp4;
}

# Передача запроса серверу IIS
location /{
# Адрес сервера IIS
proxy_pass http://backend/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 180;
client_max_body_size 10m;
client_body_buffer_size 128k;

limit_rate_after 5m;
limit_rate 2m;
#set $limit_rate 2m;
limit_conn one 1;

valid_referers none blocked localhost;
if ($invalid_referer) {
return 503;
}
error_page 503 http://mysite.ru:83/filmi.mp4;
}


}

}
Subject Author Posted

Nginx перед IIS

ValeriyZ May 31, 2011 03:46PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 155
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready