• Nie Znaleziono Wyników

nginx - pseudostriming

N/A
N/A
Protected

Academic year: 2021

Share "nginx - pseudostriming"

Copied!
4
0
0

Pełen tekst

(1)

nginx – pseudo-streaming video

1. Pobrać kompilację serwera nginx na system windows i rozpakować http://nginx.org/download/nginx-1.7.0.zip

2. W rozpakowanej paczce najważniejszymi elementami są:

a. \nginx.exe – plik wykonywalny serwera zajmuje ok 3MB. b. \conf\nginx.conf – główny plik konfiguracyjny serwera

c. \logs\error.log – plik błędów (tu przede wszystkim można znaleźć błędy w konfiguracji serwera oraz pozostałe, które wystąpią w trakcie pracy serwera) d. \html – domyślny katalog z serwowaną przez serwer zawartością.

3. Server można uruchomić, przeładować lub zastopować przez uruchomienie w konsoli pliku wykonywalnego nginx.exe z dodatkowymi atrybutami.

a. Uruchomienie serwera cd nginx-1.7.0 start nginx.exe b. Szybkie wyłączenie serwera

nginx.exe -s stop

c. Bezpieczne wyłączenie serwera

nginx.exe -s quit

d. Przeładowanie serwera (np. po zmianie konfiguracji)

nginx.exe -s reload

4. Konfiguracja serwera odbywa się przez edycję pliku \conf\nginx.conf w tym celu najlepiej korzystać z edytora „Notepad++” , ale może to być każdy inny edytor tekstu.

Struktura pliku jest mapowana na strukturę w jakiej działa serwer po uruchomieniu. Można utworzyć wiele serwerów wirtualnych.

Serwery wirtualne.

Każdy serwer wirtualny jest reprezentowany w pliku konfiguracyjnym przez struktury Server ,które muszą się zawierać w obiekcie http.

http { server { # Server configuration } server { # Server configuration } }

Do najważniejszych parametrów każdego serwera wirtualnego należy port, na którym będzie nasłuchiwał. Najczęściej rozróżniane są przez numer portu jak również przez adres ip lub domeny na jakim nasłuchują. Serwer nginx analizuje nagłówek przychodzącego żądania, a

(2)

następnie na podstawie parametrów konfiguracyjnych przekazuje żądanie do odpowiedniego serwera wirtualnego. server { listen 80 default_server; ... } server { listen 127.0.0.1:8080; ... } server { listen 80;

server_name example.org www.example.org; ...

} Lokacje

Kolejną strukturą stającą się częścią konfiguracji serwera wirtualnego jest lokacja. Pozwala ona modyfikować zachowanie serwera w trakcie obsługi żądań odnoszących się do wskazanego w tej strukturze adresu. Domyśla lokacja odnosi się do głównego katalogu serwera. Wskazuje ona fizyczny adres katalogu na dysku, gdzie znajduje się serwowana zawartość. W przypadku poniżej katalogiem głównym (root) jest katalog html z katalogu serwera. Dodatkowo można określić domyślne pliki (index),które mają być serwowane, jeśli adres żądania wskazuje jedynie na katalog lokacji. W naszym przypadku są to pliki index.html lub index.htm.

location / { root html;

index index.html index.htm; }

Kolejny przykład przedstawia lokacje, gdzie pierwsza przekierowuje żądania w formie serwera pośredniczącego (proxy) pod adres http://localhost:8080,a druga wiąże żądania do wirtualnego katalogu /images z fizycznym katalogiem /data.

location / { proxy_pass http://localhost:8080; } location /images/ { root /data; }

Adres lokacji można określić na kilka sposobów, poniżej kolejno przedstawiono przykłady:  Pierwszy tradycyjny odnosi się do wirtualnego katalogu data i wszystkich jego

podkatalogów i plików.

Drugi ze znakiem ‘=’ określa, że odnosi się jedynie do katalogu data pomijając jego podkatalogi i pliki

(3)

Trzeci ze znakiem ‘~’ określa adres za pomocą wyrażenia regularnego. Znak ‘*’ oznacza, że dowolna ilość początkowych znaków jest pomijana, a całość wskazuje na wszystkie adresy, które kończą się frazami .png lub .gif.

location /data { ... } location = /data { ... } location ~* \.(gif|png)$ { ... } Wyrażenia regularne

Bardzo przydatnym narzędziem jest możliwość stosowania wyrażeń regularnych w plikach konfiguracyjnych serwera. Pozwalają one na elastyczniejsze określenie parametrów np. adresu wirtualnego. Dodatkowo mogą pozwalać na wydobywanie i zapamiętywanie wartości do użycia w dalszej części pliku konfiguracyjnego.

Pierwszy przykład zwróci kod 403 http request, jeśli wystąpi odwołanie do jakiegokolwiek pliku .php z dowolnego katalogu: cahe, logs i tmp.

location ~*/ (cache|logs|tmp)/.*\.php$ { return 403;

}

Znak ‘*’ oznacza, że zero lub wile znaków spełnia warunek. Wyrażenie„*//” oznacza, że wyrażenie będzie zgodne z każdą kombinacją znaków kończących się znakiem ‘/’ np. „sdsds/” lub „/”;

Następny przykład przedstawia możliwość wycięcia parametrów żądania za pomocą wyrażenia regularnego.

location ~^/(.*)/(.*)\.(gif|png)$ { auth_request /auth;

alias /images/$3/$2/$1; }

Wszystkie znaki odpowiadające wyrażeniu regularnemu z nawiasów ‘(…)’ zostaje zapamiętane pod postacią ‘$1’ gdzie numer oznacza numer nawiasu. Poniższy przykład tworzy alias zamieniając wartości miejscami. Np. adres „dir1/file.gif” zostanie zamienione na „images/gif/file/dir”

Moduł pseudo-streamingu wideo

W serwer nginx został wkompilowany moduł realizujący pseudo-streaming video korzystający z kontenera video plików .mp4. Pseudo-streaming w głównej mierze polega na wstępnym wyszukaniu i przesłaniu meta-danych pliku wideo, a następnie bezpośrednim przesyłaniu zawartości pliku od wybranej pozycji z uwzględnieniem, że pierwszą klatką

(4)

powinna być klatka kluczowa (I-frame). Innymi słowami można powiedzieć, że wysyłamy bezpośrednio plik od wybranej pozycji, ale wpierw doklejamy na początek meta-dane tak, aby odtwarzać wiedział w jaki sposób wyświetlić materiał wideo.

Aby serwer rozpoczął pseudo-streaming wystarczy dopisać odpowiedni moduł do lokalizacji ścieżki wirtualnej tak jak ma to miejsce poniżej. Od tego momentu do każdego żądania do katalogu video będzie realizowane z użyciem modułu pseudo-streamingu.

location /video/ { mp4;

mp4_buffer_size 1m; mp4_max_buffer_size 5m; }

Dodatkowym atutem takiej formy pseudo-streamingu jest wbudowane wsparcie w większości przeglądarek dostępnych na rynku i brak wymagania codo playera oraz wtyczki Adobe flash playera.

Dodatkowymi parametrami, które można przekazać wraz z żądaniu do serwera są parametry start i end określają one zakres odtwarzanego filmu w sekundach. Poniższy przykład odtworzy wideo od 33 sekundy nagrania, a zakończy odtwarzanie na 35 sekundzie filmu. http://localhost:8011/video/sample.mp4?start=33&end=35

Zadanie 1

Proszę tak skonfigurować serwer, aby można było pliki wideo składować w jednym katalogu fizycznym na dysku. Natomiast odwołując się do serwera należało odwołać się do hierarchii katalogów w schemacie „/{kod_flimu}/{jakość}/{nazwa_filmu}.mp4” bez utraty tych danych.

Zadanie 2 Dodatkowe

Proszę skonfigurować obsługę skryptów php w serwerze nginx.

Można posłużyć się kompilacją php na windows ze strony http://windows.php.net/download/.

Możecie posłużyć się instrukcją http://www.nginxtips.com/how-to-install-php-with-nginx-for-windows/

Cytaty

Powiązane dokumenty

Opis sposobu dokonywania oceny spełniania tego warunku Zamawiający nie stawia warunku w tym zakresie. III.4) INFORMACJA O OŚWIADCZENIACH LUB DOKUMENTACH, JAKIE MAJĄ DOSTARCZYĆ

Cena brutto wykonania zamówienia w części 4: ……… PLN, stawka VAT: ..….%, Termin realizacji zamówienia liczony od momentu złożenia zamówienia (§ 4 ust... Cena brutto

zamówienia przysługują również organizacjom wpisanym na listę, o której mowa w art. 3) Odwołanie przysługuje wyłącznie od niezgodnej z przepisami ustawy Pzp

Od wykonawcy, którego oferta zostanie uznana jako najkorzystniejsza wymagane będzie wniesienie przed podpisaniem umowy zabezpieczenia należytego wykonania umowy w wysokości 2 %

h) w przypadkach niewykonania obowiązków w odniesieniu do ustanowienia lub zmiany zabezpieczeń. Po bezskutecznym upływie dodatkowego terminu, Zamawiający może

Otóż każdy, kto jest podłączony do globalnej sieci, łączy się z nią za pośrednictwem Dostawcy Usług Internetowych (ISP – Internet Service Provider), czyli operatora..

Ponadto skarżący twierdził, że postępowanie w sprawie jego zarzutów nie było skuteczne z uwagi na postanowienie o umorzeniu śledztwa przeciwko Policji..

c) Klient detaliczny jest informowany o wszelkich istotnych trudnościach mogących wpłynąć na właściwe wykonanie zleceń natychmiast po stwierdzeniu takich trudności. 2.Jeżeli