1 / 66

Serwery WWW Michał Kuciapski Uniwersytet Gdański Wyższa Szkoła Bankowa

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.

kasie
Télécharger la présentation

Serwery WWW Michał Kuciapski Uniwersytet Gdański Wyższa Szkoła Bankowa

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Serwery WWWMichał KuciapskiUniwersytet GdańskiWyższa Szkoła Bankowa

  2. 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.

  3. 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

  4. Serwery WWWTemat 1: Podstawowe zagadnienia sieciowe związane z serwerami WWW

  5. Tematyka Podstawowe pojęcia sieci komputerowych Komunikacja sieciowa - pakiety Standardy komunikacyjne Podział sieci komputerowych TCP / IP Adresowanie Porty

  6. 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

  7. 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

  8. 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ń)

  9. 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.

  10. 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

  11. 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

  12. Temat 1 - Podstawowe pojęcia sieci komputerowychSieci komputerowe – podział

  13. 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

  14. Temat 1 - Podstawowe pojęcia sieci komputerowychTCP / IP - model Aplikacji Aplikacji Transportowa Transportowa Sieciowa Sieciowa Fizyczna

  15. Temat 1 - Podstawowe pojęcia sieci komputerowychTCP / IP - warstwy

  16. 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

  17. 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

  18. 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

  19. Temat 1 - Podstawowe pojęcia sieci komputerowych Porty

  20. Serwery WWWTemat 2: Podstawowe zagadnienia serwerów WWW

  21. 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

  22. 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)

  23. 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.

  24. 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, …)

  25. 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

  26. 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

  27. 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)

  28. 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

  29. 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

  30. Temat 2 - Podstawowe zagadnienia serwerów WWWUdział w rynku poszczególnych serwerów WWW – stan 01.2010, Netcraft survey

  31. Temat 2 - Podstawowe zagadnienia serwerów WWWUdział w rynku poszczególnych serwerów WWW – dynamika zmian, Netcraft survey

  32. Temat 2 - Podstawowe zagadnienia serwerów WWWPorównanie serwerów WWW http://en.wikipedia.org/wiki/Comparison_of_web_server_software

  33. 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

  34. 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

  35. 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

  36. 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)

  37. 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/

  38. 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

  39. 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)

  40. 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

  41. 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]

  42. 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

  43. 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

  44. 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

  45. 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

  46. 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

  47. 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

  48. 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 -->

  49. 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">

  50. 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>

More Related