660 likes | 844 Views
Serwery WWW Michał Kuciapski Uniwersytet Gdański Wyższa Szkoła Bankowa. Wstęp. Celem wykładu jest przedstawienie tematyki serwerów WWW wraz z zagadnieniami praktycznymi z zakresu administrowania popularnymi serwerami WWW, szczególnie w ujęciu przygotowania jako serwerów aplikacji internetowych.
E N D
Serwery WWWMichał KuciapskiUniwersytet GdańskiWyższa Szkoła Bankowa
Wstęp Celem wykładu jest przedstawienie tematyki serwerów WWW wraz z zagadnieniami praktycznymi z zakresu administrowania popularnymi serwerami WWW, szczególnie w ujęciu przygotowania jako serwerów aplikacji internetowych. W ramach wykładu pokazane zostaną praktyczne aspekty administrowania serwerami WWW IIS jako serwer aplikacyjny ASP .NET oraz Apache jako serwer aplikacji PHP.
Tematyka • Temat 1: Podstawowe zagadnienia sieciowe związane z serwerami WWW • Temat 2: Podstawowe zagadnienia serwerów WWW • Temat3: Administrowanie serwerem IIS • Temat4: Administrowanie serwerem Apache • Temat 5: Wdrożenie dedykowanego serwera WWW • Temat 6: Zintegrowane serwery WWW • Temat 7: Testowanie wydajności serwera WWW
Serwery WWWTemat 1: Podstawowe zagadnienia sieciowe związane z serwerami WWW
Tematyka Podstawowe pojęcia sieci komputerowych Komunikacja sieciowa - pakiety Standardy komunikacyjne Podział sieci komputerowych TCP / IP Adresowanie Porty
Temat 1 - Podstawowe pojęcia sieci komputerowychPodstawowe pojęcia z zakresu sieci komputerowych • bit – najmniejszą jednostką pomiaru informacji, reprezentuje wartość 0 lub 1 • bajt - zbiór ośmiu bitów • sieć komputerowa – system wzajemnie połączonych autonomicznych komputerów • host – urządzanie korzystające z sieci (np. ruter, komputer) • architektura klient-serwer: • serwer – system wykonujący usługi na rzecz innych użytkowników (klientów) sieci; dotyczy programu a nie komputera • klient – host korzystający z usług
Temat 1 - Podstawowe pojęcia sieci komputerowychPodstawowe pojęcia z zakresu sieci komputerowych • protokół – zbiór reguł i zaleceń dotyczących wymiany danych pomiędzy dwoma urządzeniami • protokół sieciowy – ustalone zasady porozumiewania się komputerów w sieci • karta sieciowa – urządzenie łączące hosta z siecią • DTE – Data Terminal Equipment, czyli urządzenia końcowe, np. komputery, routery • DCE – Data Communication Equipment, czyli urządzenia pośredniczące w transmisji, np. switche, modemy, huby
Temat 1 - Podstawowe pojęcia sieci komputerowychPodstawowe pojęcia z zakresu sieci komputerowych • pakiet – porcja informacji przesłana siecią • ruter – urządzenie sterujące ruchem pakietów w sieci • ruting (trasowanie) – wybór drogi przez ruter • transmisja danych - od jednej maszyny do drugiej polega na przesyłaniu ciągu bitów przez nośniki sieci za pomocą prądu elektrycznego, fal radiowych lub światła (satelity, mikrofale, światło laserowe, podczerwień)
Temat 1 - Podstawowe pojęcia sieci komputerowychKomunikacja sieciowa - pakiety • Komputery przesyłają dane małymi porcjami zwanymi pakietami, które są wysyłane niezależnie od pozostałych. Działanie sieci komputerowych opiera się na przesyłaniu pakietów. • System sieciowy pozwalający programowi na wyłączny dostęp do dzielonych zasobów, blokuje działanie innych komputerów na niedopuszczalnie długi czas. • Plik 10 MB, przesyłanie z prędkością 56000 bitów/s to czas wysyłki ok. 24 minut. Jeżeli dokonamy podziału na pakiety o rozmiarze 1000 bajtów (8000 bitów) to pakiet można wysłać w 0,143 s. Tyle wynosi czas oczekiwania przez inny host na rozpoczęcie wysyłania danych. • Dla koordynacji nadawania i odbierania oraz sprawnego i szybkiego dostępu do dzielonego zasobu, sieci komputerowe dzielą dane na pakiety. Komputery na przemian wysyłają pakiety przez dzielone łącze. Każdy pakiet jest a tyle mały, że żaden komputer nie musi długo czekać na dostęp do łącza. • Każda technologia sieciowa (protokół) definiuje format przesyłanych pakietów przesyłanych przez sprzęt sieciowy.
Temat 1 - Podstawowe pojęcia sieci komputerowychStandardy komunikacyjne Wymagania dotyczące standaryzacji sprzętu komputerowego są publikowane w dokumentach nazwanych standardami, opracowanymi przez organizacje, takie jak: • ISO - International Organization for Standardization, • IEEE - Institute of Electronic and Electronic Engineers Grupa 802 zajmuje się standaryzacją sieci lokalnych • IETF - Internet Engineering Task Force - standardy napoziomieTCP/IP • ITU-T - International Telecommunication Union - Telecommunications Sector • TIA/EIA - Telecommunications Industry Associations / Electronics Industry Associations – zajmuje się określaniem norm dotyczących okablowania
Temat 1 - Podstawowe pojęcia sieci komputerowychSieci komputerowe – podział • Sieci rozległe WAN (Wide Area Network) ZSK (zdalne sieci komputerowe) – łączą sieci lokalne – przykładem jest globalna sieć Internet • Sieci lokalne LAN (Local Area Network) LSK (lokalne sieci komputerowe ) – biura, uczelnie, fabryki • Sieci miejskie MAN (Metropolitan Area Network) MSK (miejskie sieci komputerowe) – do łączenia sieci lokalnych • Sieci personalne PAN (Personal Area Network) • Sieci VPN (Virtual Private Network) WSP (Wirtualne sieci prywatne) – wirtualne sieci prywatne tworzone w ramach publicznej architektury
Temat 1 - Podstawowe pojęcia sieci komputerowychSieci komputerowe – podział
Temat 1 - Podstawowe pojęcia sieci komputerowychTCP / IP • TCP / IP – Transmition Control Protocol / Internet Protocol • Nazywany protokołem, tak naprawdę jest stosem protokołów • 1975 – przetestowany Stanford and University College London (UCL) • Marzec 1982 – protokół TCP/IP przyjęty jako standard komunikacji sieciowej przez Departament Obrony Stanów Zjednoczonych • 01.01.1983 – migracja ARPANET na TCP/IP
Temat 1 - Podstawowe pojęcia sieci komputerowychTCP / IP - model Aplikacji Aplikacji Transportowa Transportowa Sieciowa Sieciowa Fizyczna
Temat 1 - Podstawowe pojęcia sieci komputerowychTCP / IP - warstwy
Temat 1 - Podstawowe pojęcia sieci komputerowychAdresowanie – adresy IPv4 i IPv6 IPv4 Każdy host w sieci ma przypisany adres IP który jest unikalny przynajmniej w ramach sieci lokalnej Adres IP składa się z 4 oktetów, z których każdy jest cyfrą z zakresu od 0 do 255 Adresy z puli adresów prywatnych: Klasa A – 10.x.x.x Klasa B – 172.16.x.x – 172.31.x.x Klasa C – 192.168.x.x Pula adresów dla testowania – 127.0.x.x IPv6 Rozmiar adresu wynosi 128 bitów (4 x IP4) 8 bloków 16-bitowych Przykład https://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:443
Temat 1 - Podstawowe pojęcia sieci komputerowychAdresowanie przyjazne Przypisywane adresom IP przy wykorzystaniu systemu DNS FQDN – system jednoznacznego identyfikowania hostów w oparciu o hierarchiczną strukturę DNS – np. wsb.pl
Temat 1 - Podstawowe pojęcia sieci komputerowychPorty Umożliwiają wykonywanie wielu zadań „równocześnie” Są elementem abstrakcyjnym – uchwytem do strumienia wejściowego i (lub) wyjściowego Mogą być przydzielone konkretnej usłudze Każdy port jest identyfikowalny liczbą z zakresu od 1 do 65 535 Zarezerwowane dla znanych usług – 1-1023
Tematyka Serwer internetowy Serwer WWW Serwer aplikacyjny Aplikacyjny Serwer Webowy Udział w rynku serwerów aplikacyjnych Porównanie serwerów WWW Przeciążenia serwerów WWW Protokół HTTP/1.1 HTML Diagnozowanie połączeń z serwerami WWW
Temat 2 - Podstawowe zagadnienia serwerów WWWSerwer Internetowy (Sieciowy) Serwer Internetowy jest serwerem z uruchomionymi specjalistycznymi usługami internetowymi (sieciowymi), takimi jak: • HTTP – Hypertext Transfer Protocol • FTP – File Transfer Protocol • SMTP – Simple Mail Transfer Protocol • DNS – Domain Name System • DHCP – Dynamic Host Transfer Protocol • Routing • VPN – Virtual Private Network (L2TP, PPP)
Temat 2 - Podstawowe zagadnienia serwerów WWWSerwer WWW Serwer WWW wg Wikipedii jest programem działającym na serwerze internetowym, obsługujący żądania protokołu HTTP. Z serwerem WWW łączą się przeglądarki internetowe dla wczytania wskazanej przez użytkownika strony internetowej oraz inne aplikacje pobierające dane. Serwer WWW może pośredniczyć w realizacji innych usług, przede wszystkim przekazywania wywoływania aplikacji internetowych, jak PHP.
Temat 2 - Podstawowe zagadnienia serwerów WWWHistoria 1989 – Tim Berners-Lee zaproponował pracodawcy, organizacji CERN (European Organization for Nuclear Research) projekt wymiany danych pomiędzy naukowcami jako hypertekstu 1990 – wynikiem projektu zapoczątkowanego w roku 1989 były dwa programy: przeglądarka WorldWideWeb; serwer webowy CERN httpd 1994 – powstanie World Wide Web Consortium (W3C) standaryzowania i rozwijania technologii web-owych (http, html, xml, …)
Temat 2 - Podstawowe zagadnienia serwerów WWWSerwer Aplikacyjny Serwer aplikacyjny to zintegrowane środowisko do opracowania i osadzania aplikacji, umożliwiające integrację w sieci takich usług jak: • Uruchamianie aplikacji • Zarządzanie dostępem i uprawieniami • Optymalizacja działania • Pracę w ramach klastrów
Temat 2 - Podstawowe zagadnienia serwerów WWWKorzyści serwerów Aplikacyjnych Integracja kodu i danych Centralizacja konfiguracji Bezpieczeństwo Wydajność Total Cost of Ownership (TCO) Wspieranie transakcji
Temat 2 - Podstawowe zagadnienia serwerów WWWSerwer Aplikacyjny Popularne technologie serwerów aplikacyjnych: • Java: • Apache Geronimo • WebSphere Application Server • .NET Framework • COM+ • Inne platformy • Appaserver • Zope • Spring Framework • XML Web Services (SOAP)
Temat 2 - Podstawowe zagadnienia serwerów WWWAplikacyjny Serwer Webowy Aplikacyjny serwer webowy jest zintegrowanym środowisko do osadzania i uruchamiania aplikacji webowych. Do popularnych technologii obsługiwanych przez aplikacyjne serwery webowe należy zaliczyć: • PHP • ASP • JSP • CGI
Temat 2 - Podstawowe zagadnienia serwerów WWWAplikacyjny Serwer Webowy / Serwer WWW Do popularnych serwerów WWW należy zaliczyć: • Apache - PHP, CGI • IIS - ASP .NET, PHP • Tomcat – JSP, Java Serverlet • Zend platform - PHP • Zintegrowane serwery WWW (obsługa PHP i MySQL): • EasyPHP • WebSrv • Krasnal • Webowe serwery aplikacyjne: • WebObjects - Apple • Sapphire/Web - Bluestone Software • HatSite - Hat Software Tango – Pervasive • Netscape Application Server • Oracle Application Server
Temat 2 - Podstawowe zagadnienia serwerów WWWUdział w rynku poszczególnych serwerów WWW – stan 01.2010, Netcraft survey
Temat 2 - Podstawowe zagadnienia serwerów WWWUdział w rynku poszczególnych serwerów WWW – dynamika zmian, Netcraft survey
Temat 2 - Podstawowe zagadnienia serwerów WWWPorównanie serwerów WWW http://en.wikipedia.org/wiki/Comparison_of_web_server_software
Temat 2 - Podstawowe zagadnienia serwerów WWWPrzyczyny przeciążenia serwera Zbyt mocno obciążona komunikacja sieciowa względem przepustowości Zbyt duża ilość połączeń Ataki DDOS (DDoS) Robaki, wirusy Boty Błędy w oprogramowaniu / sprzętowe
Temat 2 - Podstawowe zagadnienia serwerów WWWSymptomy przeciążenia serwera Długi czas obsługi zdarzeń Błędy http: 500 (Internal Server Error), 502 (Bad Gateway), 503 (Service Unavailable), 504 (Gateway Timeout) Połączenia TCP / IP są odrzucane lub resetowane Częściowe wyświetlenie zawartości
Temat 2 - Podstawowe zagadnienia serwerów WWWZabezpieczanie serwera przed przeciążeniem Firewalle Menadżery ruchu HTTP Cache – stron, obiektów Różne nazwy domenowe Stosowanie wielu serwerów WWW (programowo) – różne pracują na różnych kartach sieciowych (adresach IP) Stosowanie wielu serwerów WWW (sprzętowo) – Farmy Webowe Zwiększanie parametrów serwera (RAM, CPU) Optymalizacja kodu aplikacji webowych
Temat 2 - Podstawowe zagadnienia serwerów WWWProtokół HTTP/1.1 URI, URL, URN • URI, czyli Uniform Resource Identifier • URL, czyli Uniform Resource Locator • URN, czyli Uniform Resource Name Spojrzenie • Klasyczne (URI = [URL lub URN]) • Obecne (URI = URL)
Temat 2 - Podstawowe zagadnienia serwerów WWW Protokół HTTP/1.1 Składnia URI • <scheme>://<authority><path>?<query> Przykłady typowych schematów • http://localhost:80/index.php?z1=w1&z2=w2 • ftp://user:pass@serwer.pl:21/dokument.txt • mailto:pawel@ii.uni.wroc.pl • news://pl.comp.os.linux/ • telnet://156.17.4.4/
Temat 2 - Podstawowe zagadnienia serwerów WWW Protokół HTTP/1.1 Przykład schematu http http://my.host.pl:8080/index.php?z1=w1&z2=w2 • http: – schemat, rodzaj protokołu • //my.host.pl – autoryzacja, nazwa hosta • 8080 – nr portu • /index.php – ścieżka do zasobu • z1=w1&z2=w2 – zapytanie
Temat 2 - Podstawowe zagadnienia serwerów WWW Protokół HTTP/1.1 Metody protokołu HTTP: • GET – pobiera zasoby • HEAD – działa tak samo jak GET, ale zwraca tylko sam nagłówek bez treści dokumentu • POST – przesłanie danych do serwera • DELETE - żąda, aby serwer usunął zasób • OPTIONS – pozwala klientowi ustalić opcje i/lub wymagania związane z danym zasobem (np. listę dostępnych metod)
Temat 2 - Podstawowe zagadnienia serwerów WWW Protokół HTTP/1.1 Nagłówki ogólnego przeznaczenia: • Cache-Control: • żądanie: no-cache|no-store – warunki buforowania • odpowiedź: public|private – określa rodzaj cache’a (wspólny, prywatny) • Connection: keep-alive|close – typ połączenia • Date: HTTP-date – data utworzenia • Pragma: no-cache – informacje dla serwerów pośredniczących
Temat 2 - Podstawowe zagadnienia serwerów WWW Protokół HTTP/1.1 Nagłówki klienta: • Accept: typ/podtyp – akceptowane typy danych • Accept-Charset: alfabet – akceptowany zestaw znaków • Accept-Encoding:compress | gzip | deflate – metoda kodowania • Accept-Language: język – akceptowany język • Host: nazwa-hosta[:port]
Temat 2 - Podstawowe zagadnienia serwerów WWW Protokół HTTP/1.1 Nagłówki klienta: • If-Modified-Since: HTTP-date – jeśli dokument został zmodyfikowany od data • Range: bytes=początek-koniec – wybieramy fragment dokumentu • Referer: URI – adres URL dokumentu zawierającego odwołanie do adresu żądanego dokumentu • User-Agent: nazwa – informacje o kliencie
Temat 2 - Podstawowe zagadnienia serwerów WWW Protokół HTTP/1.1 Nagłówki serwera: • Accept-Ranges: bytes | none – czy serwer akceptuje żądania cześci dokumentu • Location: URI – nowy adres zasobu • Retry-After: HTTP-date | delta-miliseconds – informuje po jakim czasie należy ponownie pobrać zasób (razem z kodem 5xx lub 3xx) • Server: product – informacje o sofcie po stronie serwera
Temat 2 - Podstawowe zagadnienia serwerów WWW Protokół HTTP/1.1 Pola zawartości: • Allow: GET, HEAD – dozwolone metody • Content-Encoding: gzip – rodzaj kodowania • Content-Language: en - język • Content-Length: liczba – wielkość dokumentu • Content-Range: początek-koniec/rozmiar – pobrano bajty od początek do koniec, a całość ma rozmiar
Temat 2 - Podstawowe zagadnienia serwerów WWW Protokół HTTP/1.1 Pola zawartości: • Content-Type: text/html; charset=ISO-8859-2 – typ zawartości dokumentu • Expires: HTTP-date – moment, po którym dokument jest już nieaktualny • Last-Modified: HTTP-date – data ostatniej modyfikacji dokumentu
Temat 2 - Podstawowe zagadnienia serwerów WWW Protokół HTTP/1.1 Kody odpowiedzi: • 1xx – informacyjne, żądanie zostało przyjęte • 2xx – pomyślne, żądanie zostały poprawnie przetworzone • 3xx – przeadresowanie, w celu zakończenia czynności trzeba podjąć dalsze kroki • 4xx – błędny URL lub inny błąd występujący po stronie klienta • 5xx – błąd w pracy serwera
Temat 2 - Podstawowe zagadnienia serwerów WWW Protokół HTTP/1.1 Przykładowa komunikacja • Żądanie: swiatowit:pawel:~> telnet www.ii.uni.wroc.pl 80 Trying 156.17.4.1... Connected to swiatowit.ii.uni.wroc.pl. Escape character is '^]'. GET /~pawel/index.html HTTP/1.1 Host: www.ii.uni.wroc.pl Connection: keep-alive
Temat 2 - Podstawowe zagadnienia serwerów WWWProtokół HTTP/1.1 Przykładowa komunikacja c.d. • I odpowiedź: HTTP/1.1 200 OK Date: Sat, 21 Feb 2004 19:34:11 GMT Server: Apache/1.3.28 (Unix) mod_ssl/2.8.15 OpenSSL/0.9.6h PHP/4.3.4 Last-Modified: Tue, 08 Oct 2002 16:48:55 GMT ETag: "bc6b-339-3da30c77" Accept-Ranges: bytes Content-Length: 825 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html <!-- Treść dokumentu -->
Temat 2 - Podstawowe zagadnienia serwerów WWW HTML Typy dokumentów HTML • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
Temat 2 - Podstawowe zagadnienia serwerów WWW HTML Struktura dokumentu <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <!–- Nagłówek dokumentu --> </HEAD> <BODY> <!-- Treść dokumentu --> </BODY> </HTML>