ГЛАВНАЯ ФОРУМ НОВОСТИ TOP 100 ВИДЕО АРХИВ ДРУЗЬЯ WEB МАСТЕРУ РАДИО СТОЛ ЗАКАЗОВ  
Популярное видео
Сериал Интерны (2 сезон) все серии 61-120
Сериал Интерны (2 сезон) все серии 61-120

Крёстный Отец 2 / The Godfather: II
Крёстный Отец 2 / The Godfather: II

Байкеры / Biker Boyz ( 2003 )
Байкеры / Biker Boyz ( 2003 )

Гладиатор (2000) Расширенная версия
Гладиатор (2000) Расширенная версия

Коментарии
Oposum пишет::з сезона полностью




Oposum пишет::22 выпуск

Oposum пишет::16 серия

Oposum пишет::21 выпуск


Oposum пишет::10 серия 

Oposum пишет::2 выпуск


Oposum пишет::4 серия добавлена

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Курилка » Обо всем по немногу » Защита видое от Хотлинка с помощью NginX
Защита видое от Хотлинка с помощью NginX
OposumДата: Понедельник, 12.09.2011, 19:45 | Сообщение # 1
Лейтенант
Группа: Администраторы
Сообщений: 53
Награды: 1
Репутация: 1
Статус: Offline
Народ, пока толком не допер как настроить php обработчик для кодирования flv ссылок но как установить связку сервера с NginX как front-end к Apache могу расписать. Нжиникс в данном случае будет обрабатывать все запросы к серверу - то есть бут стоять фронтом и отдавать статические файлы сразу ну остально бут отсылаться Апачу.
Для установки нам подойдет любая рабочая сборка сервера Denwer (Денвер), TopServer, XAMPP или же VertrigoServ и актуальная версия NginX не обязательная самая последняя - лучше выбрать стабильную (на оф сайте такие пометки есть)

И так приступим:
1 по умолчанию Apache настроен на прослушивание 80го порта, что вполне логично и правильно, но в нашем случае 80й порт будет прослушиваться nginx'ом, поэтому и требуется перенести Apache на другой порт.

Открываем C:\AppServ\Apache2.2\conf\httpd.conf и ищем в нем строчку Listen 80 (либо свой номер порта, если у Вас веб-сервер был установлен на другом порту) и заменяем ее на Listen 127.0.0.1:81
Также просматриваем строчки задания виртуальных хостов (если они есть) и меняем их тоже
находим NameVirtualHost *:80 и меняем на NameVirtualHost *:81
находим все <VirtualHost *:80> и меняем на <VirtualHost *:81>

После этого сохраняем изменения и перезапускаем Apache. Теперь можно проверить, что веб-сервер отвечает на порту 81 (Для проверки был создан файл test.php содержащий <?php phpinfo(1); ?>).

запрос http://localhost:81/test.php если у вас открылась инфо о ПХП значит порт поменялся

Этап 2. Установка nginx

Для установки nginx достаточно распаковать nginx в папку где у нас будет находиться веб-сервер,
например в C:\AppServ\nginx.
Опытным путем было выяснено, что под Windows Nginx должен быть обязательно установлен на диск C, иначе он не запускается.

Для простоты управления веб-сервером nginx создадим несколько bat файлов:
start.bat
@ECHO OFF
start c:\nginx\nginx.exe
stop.bat
@ECHO OFF
start c:\nginx\nginx.exe -s stop
reload.bat
@ECHO OFF
start c:\nginx\nginx.exe -s reload

После этих действий можно запустить nginx и посмотреть как он работает (естественно, что пока мы не подключили php обрабатывать его файлы nginx не сможет)
Итак запускаем start.bat и идем в браузер смотреть, что получилось. Вводим в адресной строке http://localhost и получаем в ответ

Этап 3. Настройка nginx

Открываем файл конфига C:\nginx\conf\nginx.conf и заменяем его на

Code
#2 рабочих процесса
worker_processes  2;

# лог для ошибок
error_log  C:/nginx/logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

events {
      # максимум рабочих соединений
      worker_connections   2000;
}

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"';
      # Лог доступа всего веб-сервера
      #access_log  logs/access.log  main;

      # Таймаут при чтении заголовка запроса клиента
      client_header_timeout  3m;
      # Таймаут при чтении тела запроса клиента
      client_body_timeout    3m;
      # Таймаут при передаче ответа клиенту
      send_timeout           3m;
      # Таймаут keep-alive соединения   
      keepalive_timeout      2m;
        
      #gzip  on;
        
      server {
          # Слушать 80 порт
          listen       80;
          # Использовать следующие хосты.
          server_name  _;   

          # Лог доступа для конкретного виртуального хоста
          #access_log  logs/host.access.log  main;

          # Отдаем статику напрямую
          location ~* \.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|js)$ {
              root         C:/AppServ/www;
              access_log   off;
              expires      30d;
          }
          # Запрещаем обращение к файлам .htaccess и .htpasswd
          location ~ /\.ht {
                  deny  all;
          }
          # Передаем запрос Apache
          location / {
                  # Адресс и порт Apache
                  proxy_pass http://127.0.0.1:81/;
                  proxy_redirect     off;

                  proxy_set_header   Host             $host;
                  proxy_set_header   X-Real-IP        $remote_addr;
                  proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

                  # Максимальный размер тела запроса клиента
                  client_max_body_size       10m;
                  client_body_buffer_size    128k;
                  #client_body_temp_path      tmp/client_body_temp;

                  proxy_connect_timeout      90;
                  proxy_send_timeout         90;
                  proxy_read_timeout         90;

                  proxy_buffer_size          4k;
                  proxy_buffers              4 32k;
                  proxy_busy_buffers_size    64k;
                  proxy_temp_file_write_size 64k;
                  #proxy_temp_path            tmp/proxy_temp;

                  charset  koi8-r;
          }

          #error_page  404              /404.html;

          # При перечисленных ошибках показывать статическую страницу /50x.html
          error_page   500 502 503 504  /50x.html;
          location = /50x.html {
              root   html;
          }
      }
}
   


Этап 4. Установка и настройка RPAF в Apache

Так как у нас обращение к Apache идет не напрямую, а через Nginx, то теперь в REMOTE_ADDR у нас не пользовательский IP, а IP-адрес сервера, на котором расположен Nginx. Поэтому на помощь приходит RPAF, он берет тело заголовка X-Forwarded-For, присланного от фронтенда и формирует в Apache из него REMOTE_ADDR.
Таким образом заголовок REMOTE_ADDR снова имеет пользовательский IP.

Скачиваем mod_rpaf
mod_rpaf.rar (2.15 Кб)

и распаковываем в папку модулей Apache (C:\AppServ\Apache2.2\modules). После этого открываем C:\AppServ\Apache2.2\conf\httpd.conf и добавляем в конец файла

Код:
LoadModule rpaf_module modules/mod_rpaf.so

RPAFenable On
RPAFsethostname On
RPAFheader X-Forwarded-For
RPAFproxy_ips 192.168.1.26 127.0.0.1

вместо 192.168.1.26 укажите IP адрес сервера, на котором расположен Nginx.
Теперь сохраняем изменения и перезапускаем Apache.

Так же желательно перенести папку C:\AppServ\Apache2.2\icons в папку C:\AppServ\www. Без этого при просмотре содержимого каталогов (опция Indexes в Apache) nginx будет пытаться загрузить несуществующие иконки для файлов.

Вот собственно и все - мы получили рабочий NginX сервер

Теперь про защиту ссылок - В конфиг nginx в блок server для нашего домена добавляем:
Code
location / {
rewrite ^/video/(w+)/(.+)$ /get.php?hash=&filename= last;
...
}
location /video {
internal;
flv;
}


А вот с самим отработчиком get.php пока касяк где то
Code
$hash =$_GET['hash'];
$filename = $_GET['filename'];
$ip = md5(getenv(”REMOTE_ADDR”).”key”);
if ($hash == $ip){
$url=$_SERVER['REQUEST_URI'];
$url=explode(’?',$url);
$url=$url[1];
if (isset($url)){$filename .=’?’.$url;}
header(”Content-Type: video/x-flv”);
header(”X-Accel-Redirect:/video/”.$filename);
die();
}
echo “нех воровать=)”;
 
Форум » Курилка » Обо всем по немногу » Защита видое от Хотлинка с помощью NginX
  • Страница 1 из 1
  • 1
Поиск:
Профиль
Воскресенье
12.07.2020
13:18


Логин:
Пароль:
Поиск
Случайное видео
Большой Куш х/ф Спиздили (Гоблин) 2000

Большой Куш х/ф Спиздили (Гоблин) 2000



Распутницы / Absolument fabuleux (2001)

Распутницы / Absolument fabuleux (2001)



Близнецы / Twins (1988)

Близнецы / Twins (1988)



Собачьи проблемы (2006)

Собачьи проблемы (2006)



Я страшненькая / Jme sens pas belle (2004)

Я страшненькая / Jme sens pas belle (2004)



Полицейский из Беверли-Хиллз (1984)

Полицейский из Беверли-Хиллз (1984)



Клерки 2 / Джей и молчаливый Боб (2006)

Клерки 2 / Джей и молчаливый Боб (2006)



Кто твой Кэдди? (2007)

Кто твой Кэдди? (2007)



Свидание моей мечты (2006)

Свидание моей мечты (2006)



Не грози Южному Централу (1996) гоблин

Не грози Южному Централу (1996) гоблин



Земные девушки легко доступны (1988)

Земные девушки легко доступны (1988)



Статистика


РЕКЛАМА:

Друзья сайта
Кинотеатр онлайн
Copyright KinofileZ.ru© 2020