Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 01.01.2014, 17:27   #1
Аспирант
 
Регистрация: 13.09.2008
Сообщений: 101
Репутация: -1337

По умолчанию Подскажите по защита прямых ссылок Nginx+Uppod

Добрый день.

Нужен совет по поводу защиты прямых ссылок на видео.

Сделал почти все, по порядку.

Сборка Nginx-apache-php

Настроил nginx на стриминг flv , все работает замечательно.

Ссылка типа http://site.ru/video/34b80e5207a997b...ca77fa34/1.flv

Плеер от Uppod


location ~ \.flv$ {
root $root_path;
rewrite '^/video/([A-Za-z0-9_]{1,255})/(.+)$' /get.php?hash=$1&filename=$2 break;
limit_conn one 3;
set $limit_rate 500K;
}

после запроса nginx редиректит на файл обработчик: get.php

все работает супер, фильм показывается в плеере Uppod.

Но после того как я ставлю запрет на прямой доступ к папке video в локейшн nginx, чтобы запросы шли только внутренние , все перестает работать.
Доступ запрещает. В плеере от Аппода пишет файл не найден.

location ^~ /video/ {
root $root_path;
internal;
}


Может кто то может дать совет, уже два дня мучаюсь

Все заранее большое спасибо.



Ниже конфиг nginx:
---------------------------------------------------------------------------------

user apache;worker_rlimit_nofile 100000;

error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;

pid /var/run/nginx.pid;


events {
worker_connections 1024;
use epoll;
}


worker_processes 4;


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;
server_tokens off;
gzip on;
gzip_static on;
gzip_comp_level 5;
gzip_min_length 1024;
keepalive_timeout 30;
directio 10m;
expires max;

limit_conn_zone $binary_remote_addr zone=one:10m;

limit_rate 500K;

# Load config files from the /etc/nginx/conf.d directory
include /etc/nginx/conf.d/*.conf;



# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;

# location / {
# root html;
# index index.html index.htm;
# }
#}


# HTTPS server
#
#server {
# listen 443;
# server_name localhost;

# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_timeout 5m;

# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

include /usr/local/ispmgr/etc/nginx.domain;
client_max_body_size 16M;
log_format isp '$bytes_sent $request_length';
server {
server_name site.ru www.site.ru;
listen xx.xx.xx.xx;
disable_symlinks if_not_owner from=$root_path;
set $root_path /var/www/vvv/data/www/site.ru;
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
root $root_path;
access_log /var/www/nginx-logs/vvv isp;
access_log /var/www/httpd-logs/site.ru.access.log ;
error_page 404 = @fallback;
}
location / {
root $root_path;
proxy_pass http://xx.xx.xx.xx:81;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;



}
location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ {
proxy_pass http://xx.xx.xx.xx:81;
proxy_redirect http://xx.xx.xx.xx:81/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
location @fallback {
proxy_pass http://xx.xx.xx.xx:81;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}



location ~ \.flv$ {
root $root_path;
rewrite '^/video/([A-Za-z0-9_]{1,255})/(.+)$' /get.php?hash=$1&filename=$2 break;
limit_conn one 3;
set $limit_rate 500K;
}

location ^~ /video/ {
root $root_path;
internal;
}


include /usr/local/ispmgr/etc/nginx.inc;
}

}

---------- Добавлено 01.01.2014 в 18:39 ----------

Заметил, что после вот этого блока

location ^~ /video/ {
root $root_path;
internal;
}

запрос не передается обработчику get.php , а просто пишет 404 ошибку
nickcherevko вне форума   Ответить с цитированием

Реклама
Старый 01.01.2014, 22:21   #2
kgtu5
Академик
 
Регистрация: 21.07.2010
Адрес: Kostroma
Сообщений: 2,269
Репутация: 150092
Отправить сообщение для kgtu5 с помощью ICQ Отправить сообщение для kgtu5 с помощью Skype™

По умолчанию Re: Подскажите по защита прямых ссылок Nginx+Uppod

а не должен
Цитата:
location ^~ /video/ {
root $root_path;
internal;
}
быть выше блока с .flv ?
__________________
аська 45два48499два записки на работе
помогу с сайтом, удалю вирусы, настрою впс -> отзывы ТУТ и ТАМ
!!!всегда проверяйте данные людей, которые сами пишут вам в аську или скайп!!!
kgtu5 вне форума   Ответить с цитированием
Сказали спасибо:
Старый 01.01.2014, 23:10   #3
nickcherevko
Аспирант
 
Регистрация: 13.09.2008
Сообщений: 101
Репутация: -1337

ТопикСтартер Re: Подскажите по защита прямых ссылок Nginx+Uppod

Не помогло, я уже что только не пробовал

Попробовал прямо с блока локейшн отдавать файл

location ~ \.flv$ {
root $root_path;
rewrite '^/video/([A-Za-z0-9_]{1,255})/(.+)$' /video/$2 break;
internal;
flv;
limit_conn one 3;
set $limit_rate 500K;
}

Без internal; файл отдается, как только пишу интернал, так сразу ошибка 404

не передает запрос файлу обработки, и во втором случае без файла обработки должен отдавать файл он его не отдает, ошибка 404

В плеере пишет 1.flv не найден

Вот с дебагера плеера :

0x4294967295 NetStream.Play.StreamNotFound / 0

play: http://site.ru/video/34b80e5207a997b...ca77fa34/1.flv

NetConnection.Connect.Success /

StageVideo unavailable
nickcherevko вне форума   Ответить с цитированием
Старый 02.01.2014, 01:19   #4
WapGraf
Академик
 
Аватар для WapGraf
 
Регистрация: 01.10.2009
Адрес: Болгария
Сообщений: 5,429
Репутация: 199616
Отправить сообщение для WapGraf с помощью Skype™
Социальные сети

По умолчанию Re: Подскажите по защита прямых ссылок Nginx+Uppod

Код:
rewrite ^/video_flv/(.+)/(.+\.flv)$ /get.php?hash=$1&filename=$2 last;
location ~* ^/video(/.+)\.flv {
  internal;
  flv;
}
__________________
EuroHoster.org - территория быстрых серверов.
2 vCPU / 4 GB RAM / 20 GB SSD / 100 Mbps / панель Plesk / мониторинг доступности - 15.00 EUR
SSL-сертификаты от 4.89 EUR / VPS Нидерланды - 2.50 EUR
WapGraf вне форума   Ответить с цитированием
Сказали спасибо:
Старый 02.01.2014, 02:50   #5
nickcherevko
Аспирант
 
Регистрация: 13.09.2008
Сообщений: 101
Репутация: -1337

ТопикСтартер Re: Подскажите по защита прямых ссылок Nginx+Uppod

Цитата:
Сообщение от WapGraf Посмотреть сообщение
Код:
rewrite ^/video_flv/(.+)/(.+\.flv)$ /get.php?hash=$1&filename=$2 last;
location ~* ^/video(/.+)\.flv {
  internal;
  flv;
}

Спасибо Вам большое. Все заработало как часики. Я даже не ожидал, вот , что значит человек шарит.

Я два дня пыхтел и ничего не получалось, еще не знаю на сколько бы меня хватило. СУПЕР.

Я счастлив!!!!

С меня пиво
nickcherevko вне форума   Ответить с цитированием
Ответ



Опции темы

Быстрый переход


Регистрация Справка Календарь Поддержка Все разделы прочитаны