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

N
На сайте с 13.09.2008
Offline
45
4898

Добрый день.

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

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

Сборка Nginx-apache-php

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

Ссылка типа http://site.ru/video/34b80e5207a997bfdfc3e48dca77fa34/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 ошибку

K5
На сайте с 21.07.2010
Offline
209
#1

а не должен

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

быть выше блока с .flv ?

аська 45два48499два записки на работе (http://memoryhigh.ru) помогу с сайтом, удалю вирусы, настрою впс -> отзывы ТУТ (/ru/forum/836248) и ТАМ (http://www.maultalk.com/topic140187.html) !!!всегда проверяйте данные людей, которые сами пишут вам в аську или скайп!!!
N
На сайте с 13.09.2008
Offline
45
#2

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

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

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/34b80e5207a997bfdfc3e48dca77fa34/1.flv

NetConnection.Connect.Success /

StageVideo unavailable

Андрей
На сайте с 30.09.2009
Offline
482
#3

rewrite ^/video_flv/(.+)/(.+\.flv)$ /get.php?hash=$1&filename=$2 last;
location ~* ^/video(/.+)\.flv {
internal;
flv;
}
EuroHoster.org ( https://eurohoster.org/ru/ ) - территория быстрых серверов. Выделенные серверы, VPS, SSL, домены и VPN.
N
На сайте с 13.09.2008
Offline
45
#4
WapGraf:
rewrite ^/video_flv/(.+)/(.+\.flv)$ /get.php?hash=$1&filename=$2 last;

location ~* ^/video(/.+)\.flv {
internal;
flv;
}

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

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

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

С меня пиво :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий