LIGHTTPD szybkość i prostota. Robert Partyka

Podobne dokumenty
Zarządzanie systemami informatycznymi. Zarządzanie serwerem httpd: Apache

FTP co to takiego? FTP File Transfer Protocol (Protokół Przesyłania Plików) RFC 114,959

Serwer Apache podstawy instalacji i administracji.

Programowanie w Internecie

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 2 Seria: Teleinformatyka 2013

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Aplikacje WWW. Wykład 12. Serwery HTTP. wykład prowadzi: Maciej Zakrzewicz. Serwery HTTP

Konfiguracja serwera Apache

W poprzednim odcinku poznaliśmy: W poprzednim odcinku, cd.: W dzisiejszym odcinku. Apache serwer WWW (część 2)

Apache serwer WWW (część 2) Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Tomasz Greszata - Koszalin

Apache. Apache serwer WWW

Parametr --prefix wskazuje katalog, do którego zostanie zainstalowany serwer.

-czyli jak pozwolić adminowi spać w nocy

Linux -- u mnie działa!

Apache serwer WWW. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki

I.Wojnicki, Tech.Inter.

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

Serwery WWW. Konfiguracja. Zadania serwera. NCSA httpd 1.5

Temat: EasyAccess 2.0 Data: 10 Października 2014 Prowadzący: Maciej Sakowicz

Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki

CENNIK PODSTAWOWY USŁUGI etlink FIRMA

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Instytut Teleinformatyki

Projektowanie stron WWW

Instrukcja obsługi programu CMS Dla rejestratorów HANBANG

Podstawy technologii WWW

Drobne błędy w portalach WWW

Laboratorium - Konfiguracja zabezpieczeń sieci bezprzewodowej

CENNIK PODSTAWOWY USŁUGI etlink FIRMA

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Powitanie. Joomla Day 2014, Warszawa, Poland, Jak bezpiecznie pozycjonować strony oparte na Joomla?

1.1 Podłączenie Montaż Biurko Montaż naścienny... 4

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

System kontroli dostępu ACCO NET Instrukcja instalacji

Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK

ACCO NET. System kontroli dostępu. Instrukcja instalacji

HTTP. literatura:

Aplikacje webowe. mgr inż. Aleksander Smywiński-Pohl. Elektroniczne Przetwarzanie Informacji

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Serwer Apache w połączeniu z OpenSSL. Autorzy: Radosław Bednarski, Tomasz Kaleta IV FDS

Internetowe bazy danych

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Laboratorium - Konfiguracja routera bezprzewodowego w Windows 7

Laboratorium - Konfiguracja routera bezprzewodowego w Windows Vista

Platforma webowa IIS

Zadanie OUTSIDE /24. dmz. outside /24. security- level /16

Opis oferowanego przedmiotu zamówienia

Laboratorium 1 Wprowadzenie do PHP

Instrukcja programu Wireshark (wersja 1.8.3) w zakresie TCP/IP

Inteligentny czujnik w strukturze sieci rozległej

Automatyczna aktualizacja. Instalacja Serwera aktualizacji

CGI (Common Gateway Interface)

Języki i narzędzia programowania III. Łukasz Kamiński Wykład I

Zarządzanie systemami informatycznymi. Bezpieczeństwo przesyłu danych

Dokumentacja fillup - MS SQL

Konfiguracja SNMP z wykorzystaniem pakietu MRTG

Stos TCP/IP. Warstwa aplikacji cz.2

Specyfikacja konfiguracji systemów

Laboratorium 3.4.2: Zarządzanie serwerem WWW

Instrukcja obsługi serwera FTP v

Instrukcja dla instalatora systemu SMDP Enterprise/Professional

Wybrane działy Informatyki Stosowanej

PODSTAWOWA KONFIGURACJA LINKSYS WRT300N

Połączenie VPN SSL Web Proxy. 1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Profile SSL Web Proxy 1.3. Konto SSL 1.4. Grupa użytkowników

APACHE SSL Linux. Użycie certyfikatów niekwalifikowanych w oprogramowaniu APACHE SSL Linux. wersja 1.5

DOKUMENTACJA INTERFEJSU API - HTTPS

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

SZYBKIE URUCHOMIENIE. BRAMKA VoIP HT-286/486/502/503. Grandstream Szybkie uruchomienie Seria HT Networks Inc.

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Laboratorium nr 4 - Badanie protokołów WWW

DFL-200 Network Security Firewall. Dysk CD (zawierający podręcznik użytkownika) Kabel konsoli (RS 232) Zasilacz napięcia stałego 5 V

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

HTTP, CGI, Perl. HTTP HyperText Transfer Protocol. CGI Common Gateway Interface. Perl Practical Extraction and Report Language

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

KARTA KURSU. Administracja serwerami WWW

mod ssl moduł umożliwiający uruchomienie protokołu https, czyli szyfrowanej wersji serwisu

Instrukcja instalacji PHP-Hypercachera Refresher Standard oraz PHP-Hypercachera Refresher GZIP na Twojej witrynie

APACHE SSL Linux. Użycie certyfikatów niekwalifikowanych w oprogramowaniu APACHE SSL Linux. wersja 1.8

Szczegółowy opis przedmiotu zamówienia

Plan wykładu. 1. Protokół FTP. 2. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Instrukcja obsługi programu Monitor Wydruków

Zmienne i stałe w PHP

ZABEZPIECZENIE KOMUNIKACJI Z SYSTEMEM E-PŁATNOŚCI

Przykład programu w PHP. Wykład10.PHP ciągdalszy,str.1

APACHE SSL Linux Użycie certyfikatów niekwalifikowanych w oprogramowaniu APACHE SSL Linux wersja 1.4 UNIZETO TECHNOLOGIES S.A.

Arkusz: Badanie komponentów komputera.

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

(nazwa (firma) oraz dokładny adres Wykonawcy/Wykonawców; w przypadku składania oferty przez podmioty występujące wspólnie podać nazwy (firmy)

My niżej podpisani... działając w imieniu i na rzecz... w odpowiedzi na ogłoszenie o przetargu nieograniczonym na :

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Dostęp zdalny

Zarządzanie systemami informatycznymi. Protokoły warstw aplikacji i sieci TCP/IP

Połączenie Partnera z serwisem JustPay poprzez - METODĘ 2

INSTYTUT IMMUNOLOGII I TERAPII DOŚWIADCZALNEJ im. Ludwika Hirszfelda Polska Akademia Nauk

ZADANIE.08 RADIUS (authentication-proxy, IEEE 802.1x) 2h

Wykład 6: PHP: praca z bazą danych MySQL, cz.2

Transkrypt:

LIGHTTPD szybkość i prostota

Dlaczego LIGHTTPD Składnia pliku konfiguracyjnego Podstawowa konfiguracja Czego najbardziej potrzebujemy Jeśli nie LIGHTTPD to co?

Dlaczego LIGHTTPD problem C10K Chcemy obsłużyć 10 tyś użytkowników symultanicznie

Dlaczego LIGHTTPD problem C10K Chcemy obsłużyć 10 tyś użytkowników symultanicznie Sprzęt: 2,8Ghz (x4) = 280Khz (1,12Mhz) / użytkownik 4GB RAM = ~400KB / użytkownik 1000Mbps Ethernet = 100Kbps / użytkownik 3GB/s SATA-2 = ~300KBps / użytkownik Gdzie leży problem?

Dlaczego LIGHTTPD problem C10K Chcemy obsłużyć 10 tyś użytkowników symultanicznie Sprzęt: 2,8Ghz (x4) = 280Khz (1,12Mhz) / użytkownik 4GB RAM = ~400KB / użytkownik 1000Mbps Ethernet = 100Kbps / użytkownik 3GB/s SATA-2 = ~300KBps / użytkownik Gdzie leży problem?

Dlaczego LIGHTTPD problem C10K Chcemy obsłużyć 10 tyś użytkowników symultanicznie Sprzęt: 2,8Ghz (x4) = 280Khz (1,12Mhz) / użytkownik 4GB RAM = ~400KB / użytkownik 1000Mbps Ethernet = 100Kbps / użytkownik 3GB/s SATA-2 = ~300KBps / użytkownik Gdzie leży problem?

Dlaczego LIGHTTPD problem C10K Chcemy obsłużyć 10 tyś użytkowników symultanicznie Sprzęt: 2,8Ghz (x4) = 280Khz (1,12Mhz) / użytkownik 4GB RAM = ~400KB / użytkownik 1000Mbps Ethernet = 100Kbps / użytkownik 3GB/s SATA-2 = ~300KBps / użytkownik Gdzie leży problem?

Dlaczego LIGHTTPD problem C10K Chcemy obsłużyć 10 tyś użytkowników symultanicznie Sprzęt: 2,8Ghz (x4) = 280Khz (1,12Mhz) / użytkownik 4GB RAM = ~400KB / użytkownik 1000Mbps Ethernet = 100Kbps / użytkownik 3GB/s SATA-2 = ~300KBps / użytkownik Gdzie leży problem?

Dlaczego LIGHTTPD problem C10K Chcemy obsłużyć 10 tyś użytkowników symultanicznie Sprzęt: 2,8Ghz (x4) = 280Khz (1,12Mhz) / użytkownik 4GB RAM = ~400KB / użytkownik 1000Mbps Ethernet = 100Kbps / użytkownik 3GB/s SATA-2 = ~300KBps / użytkownik Gdzie leży problem?

Dlaczego LIGHTTPD problem C10K Chcemy obsłużyć 10 tyś użytkowników symultanicznie Sprzęt: 2,8Ghz (x4) = 280Khz (1,12Mhz) / użytkownik 4GB RAM = ~400KB / użytkownik 1000Mbps Ethernet = 100Kbps / użytkownik 3GB/s SATA-2 = ~300KBps / użytkownik Gdzie leży problem?

Składnia pliku konfiguracyjnego LIGHTTPD szybkość i prostota nazwamodułu.parametr = wartość nazwamodułu.parametr = ( wartość, wartość, wartość... ) nazwamodułu.parametr = ( klucz => wartość, klucz => wartość,... ) server.document-root = "/var/www/example.org/pages/" server.modules = ( "mod_access", "mod_rewrite" ) cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl" )

Składnia pliku konfiguracyjnego <pole> <operator> <wartość> {... }else <pole> <operator> <wartość>{... }else{... } LIGHTTPD szybkość i prostota $HTTP["remoteip"]!~ "^192\.168\.1\." { url.access-deny = ("") }

Składnia pliku konfiguracyjnego $HTTP["cookie"] - ciasteczka $HTTP["host"] - zmienna "host" z nagłówka $HTTP["useragent"] - informacje o przeglądarce $HTTP["referer"] - zmienna "referer" z nagłówka $HTTP["url"] - URL żądania klienta $HTTP["querystring"] - parametry z żądania klienta (po "?") $HTTP["remoteip"] - adres IP klienta $HTTP["scheme"] - "http" lub "https"

Składnia pliku konfiguracyjnego $SERVER["socket"] - gniazdo połączenia. Porównanie tylko w formacie "IP:PORT" lub ":PORT". Obsługuje tylko operator "==" $PHYSICAL["path"] - fizyczna ścieżka żądanego pliku w systemie plików serwera $PHYSICAL["existing-path"] - fizyczna ścieżka żądanego pliku w systemie plików serwera, tylko jeśli plik istnieje

Składnia pliku konfiguracyjnego == - porównanie (równy)!= - porównanie (inny niż) =~ - porównanie z wzorcem wyrażenia regularnego w stylu perl (równy)!~ - porównanie z wzorcem wyrażenia regularnego w stylu perl (inny niż)

Składnia pliku konfiguracyjnego $HTTP["host"] == "www.moja.org" { $HTTP["remoteip"]!~ "^192\.168\.[0-3]\." { $HTTP["url"] =~ "^/admin/" { url.access-deny = ( "" ) } } }

Podstawowa konfiguracja server.port = 80 server.event-handler = "linux-sysepoll" server.network-backend = "linux-sendfile" server.username = "lighttpd" server.groupname = "lighttpd" server.tag = "example"

Podstawowa konfiguracja server.max-fds = 20480 server.max-connections = 10240 server.max-keep-alive-requests = 20 server.max-keep-alive-idle = 5 server.kbytes-per-second = 128

Podstawowa konfiguracja server.modules = ( "mod_auth", "mod_rewrite", "mod_alias", "mod_access", "mod_evhost", "mod_accesslog", "mod_cgi" )

Podstawowa konfiguracja server.indexfiles = ( "index.php", "index.html", "index.htm", "default.htm") server.follow-symlink = "enable" url.access-deny = ("~", ".inc") server.document-root = "/var/www/localhost" server.pid-file server.errorlog accesslog.filename = "/var/run/lighttpd.pid" = "/var/log/lighttpd/error.log" = "/var/log/lighttpd/access.log"

Podstawowa konfiguracja include "vhost.conf" include "ssl.conf" include "mod_fastcgi.conf" include "mime-types.conf"

Czego najbardziej potrzebujemy * vhosty * mod_auth * mod_access * mod_fastcgi - PHP * mod_cgi * SSL * mod_rewrite * mod_redirect

Czego najbardziej potrzebujemy vhosty $HTTP["host"] == "www.mojastrona.pl" { server.document-root = "/var/www/sites/mojastrona.pl/" server.name = "www.mojastrona.pl" } $HTTP["host"] =~ "^(www\.)?mojastrona\.pl$" { server.document-root = "/var/www/sites/mojastrona.pl/" server.name = "www.mojastrona.pl" }

Czego najbardziej potrzebujemy mod_auth auth.backend = "plain" auth.backend.plain.userfile = "/var/www/plain.user" auth.require = ( "/" => ( "method" => "basic", "realm" => "XXLmarket", "require" => "valid-user" ) )

Czego najbardziej potrzebujemy mod_access url.access-deny = ( "~", ".inc") LIGHTTPD szybkość i prostota access.deny-all = "enable"

Czego najbardziej potrzebujemy mod_fastcgi server.modules += ("mod_fastcgi") fastcgi.server = ( ".php" => ( "localhost" => ( "socket" => "/var/run/lighttpd-fastcgi-php-" + PID + ".sk", "bin-path" => "/usr/bin/php-cgi", "min-procs" => 32, "max-procs" => 32, "bin-environment" => ( "PHP_FCGI_CHILDREN" => "1", "PHP_FCGI_MAX_REQUESTS" => "10000" ), "bin-copy-environment" => ("PATH", "SHELL", "USER") ) ) )

Czego najbardziej potrzebujemy mod_cgi cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl" ) $PHYSICAL["existing-path"] =~ "^/var/www/cgi-bin/" { } cgi.execute-all = "enable" cgi.assign = ( ".sh" => "" )

Czego najbardziej potrzebujemy SSL $SERVER["socket"] == "0.0.0.0:443" { ssl.engine = "enable" ssl.pemfile = "/etc/lighttpd/ssl/s.pem" ssl.use-sslv2 = "disable" }

^\"((?:[^\"]*(?:\"\")*)*?)\"\,?

Czego najbardziej potrzebujemy mod_rewrite url.rewrite-once = ( "<regex>" => "<relative-uri>" ) url.rewrite-repeat = ( "<regex>" => "<relative-uri>" ) %% - znak % %0 do %9 - odnalezione podzbiory w $HTTP["host"] $1 do $9 odnalezione podzbiory wzorca

Czego najbardziej potrzebujemy mod_rewrite $HTTP["host"] =~ "^(.+)\.mojastrona\.pl$" { url.rewrite-once = ( "^(.*\?.*)$" => "$1&subdomena=%1", "^(.*)$" => "$1?subdomena=%1" ) }

Czego najbardziej potrzebujemy mod_redirect url.redirect = ( "^/s/([0-9]+)/([0-9]+)$" => "http://www.mojastrona.pl/show.php?isdn=$1&page=$2", "^/g/([0-9]+)/([0-9]+)$" => "http://www.mojastrona.pl/get.php?isdn=$1&page=$2" ) $HTTP["host"] =~ "^www\.(.*)$" { } url.redirect = ( "^/(.*)" => "http://%1/$1" )

Jeśli nie LIGHTTPD to co? LIGHTTPD szybkość i prostota Nginx

Gdzie szukać? www.lighttpd.net http://wiki.codemongers.com/nginxgettingstarted

Dziękuję za uwagę kontakt: rpartyka@bobson.pl