Web лекция 3 Web серверы

53
Web-сервера Сергей Лихобабин, Александр Горный

description

Web серверы

Transcript of Web лекция 3 Web серверы

Page 1: Web   лекция 3 Web серверы

Web-сервера

Сергей Лихобабин, Александр Горный

Page 2: Web   лекция 3 Web серверы

2

Конфигурация

Обзор лекции: web-сервера

Page 3: Web   лекция 3 Web серверы

3

• Directive Value

• #comment

• <Directive Value>

</Directive>

• Include FileMask

Структура httpd.conf

Page 4: Web   лекция 3 Web серверы

4

• PidFile

• User/Group

• Listen

• ListenBacklog

• Protocol

• CoreDumpDirectory

Верхнеуровневые параметры

Page 5: Web   лекция 3 Web серверы

5

• Модуль mod_so

• Директива LoadModule

Модули

Page 6: Web   лекция 3 Web серверы

6

• prefork

• worker

• event

Multi-Processing Modules

Page 7: Web   лекция 3 Web серверы

7

• StartServers

• MinSpareServers/MaxSpareServers

• MaxRequestWorkers

• MaxConnectionsPerChild

prefork

Процессов не больше MaxRequestWorkers

Потоков по одному на процесс

Клиентов не больше MaxRequestWorkers

Page 8: Web   лекция 3 Web серверы

8

• ThreadsPerChild

• MinSpareThreads/MaxSpareThreads

worker

Процессов не больше MaxRequestWorkers/ThreadPerChild

Потоков не больше MaxRequestWorkers

Клиентов не больше MaxRequestWorkers

Page 9: Web   лекция 3 Web серверы

9

• AsyncRequestWorkerFactor

event

Процессов не больше MaxRequestWorkers/ThreadPerChild

Потоков ThreadPerChild + 1 на процесс

Клиентов не больше (AsyncRequestWorkerFactor + 1) * MaxRequestWorkers

Page 10: Web   лекция 3 Web серверы

10

• KeepAlive

• KeepAliveTimeout

• MaxKeepAliveRequests

• TimeOut

• RequestReadTimeout header=20-40,MinRate=500

body=20,MinRate=500

KeepAlive и TimeOut’ы

Page 11: Web   лекция 3 Web серверы

11

• VirtualHost

• ServerName

• ServerAlias

VirtualHost

Page 12: Web   лекция 3 Web серверы

12

• Directory/DirectoryMatch

• Location/LocationMatch

• Files/FilesMatch

• Options ExecCGI, Includes, Indexes, FollowSymLinks

Структура

Page 13: Web   лекция 3 Web серверы

13

• AccessFileName

• AllowOverride/AllowOverrideList

.htaccess

Page 14: Web   лекция 3 Web серверы

14

• DocumentRoot

• Alias/AliasMatch

• ScriptAlias/ScriptAliasMatch

• UserDir

Добраться до файлов

Page 15: Web   лекция 3 Web серверы

15

• ErrorLog

• ErrorLogFormat

• LogLevel

• LogFormat

• CustomLog/TransferLog

176.195.177.189 - - [02/Mar/2014:22:37:35 +0400] "GET /oborudovanie/pnevmaticheskie-zaglushki/ HTTP/1.0" 200 "http://yandex.ru/yandsearch?text=%D1%8F%D1%8D%D1%85%D1%82%D1%8C%D1%8E%D1%87%D1%80%D1%83%D1%8B%D1%94%C2%B0%D1%8A%D1%88&lr=213" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)"

80.76.108.27 - - [02/Mar/2014:23:24:59 +0400] "GET /webasyst/?action=count&background_process=1&_=1393788297367 HTTP/1.0" 200 "http://attivo.ru/webasyst/shop/?action=orders" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36"

Логи

Page 16: Web   лекция 3 Web серверы

16

• SetHandler default-handler, cgi-script, <my-handler>

• AddHandler/RemoveHandler

• Action

handler

Page 17: Web   лекция 3 Web серверы

17

• Redirect/RedirectMatch

• ErrorDocument code page

• RewriteEngine on

• RewriteCond expr "! %{HTTP_REFERER} -strmatch

'*://%{HTTP_HOST}/*'“

• RewriteRule ^/$ /homepage.std.html

mod_rewrite

Page 18: Web   лекция 3 Web серверы

18

Авторизация

Page 19: Web   лекция 3 Web серверы

19

• LimitRequestBody

• LimitRequestFields

• LimitRequestFieldsSize

• LimitRequestLine

• Rlimit*

Ограничения клиента и сервера

Page 20: Web   лекция 3 Web серверы

20

• If, ElseIf, Else

• IfModule

• IfDefine

• IfVersion

• Error

Apache: if

Page 21: Web   лекция 3 Web серверы

21

Вопросы

Page 22: Web   лекция 3 Web серверы

22

• Directive Value

• #comment

• <Directive Value>

</Directive>

• Include FileMask

Структура httpd.conf

Page 23: Web   лекция 3 Web серверы

23

• directive value;

• #comment

• directive value {

}

• include filemask

Структура nginx.conf

Page 24: Web   лекция 3 Web серверы

24

• PidFile

• User/Group

• Listen

• ListenBacklog

• Protocol

• CoreDumpDirectory

Верхнеуровневые параметры (Apache)

Page 25: Web   лекция 3 Web серверы

25

• pid

• user

• working_directory

Верхнеуровневые параметры

Page 26: Web   лекция 3 Web серверы

26

• prefork

• worker

• event

Multi-Processing Modules (Apache)

Page 27: Web   лекция 3 Web серверы

27

• use

• worker_processes

• worker_connections

events

Процессов Ровно worker_processes

Потоков нет

Клиентов не больше worker_connections*worker_processes

Page 28: Web   лекция 3 Web серверы

28

• debug_connection

• timer_resolution

• worker_cpu_affinity

Производительность

Page 29: Web   лекция 3 Web серверы

29

• Directory/DirectoryMatch

• Location/LocationMatch

• Files/FilesMatch

• Options ExecCGI, Includes, Indexes, FollowSymLinks

Структура (Apache)

Page 30: Web   лекция 3 Web серверы

30

• http

• server

• location

• И никакого .htaccess!!

Структура

Page 31: Web   лекция 3 Web серверы

31

• KeepAlive

• KeepAliveTimeout

• MaxKeepAliveRequests

• TimeOut

• RequestReadTimeout header=20-40,MinRate=500

body=20,MinRate=500

KeepAlive и TimeOut’ы (Apache)

Page 32: Web   лекция 3 Web серверы

32

• keepalive_disable none|msie6|safari

• keepalive_timeout timeout [header]

• keepalive_requests

• client_body_timeout,

client_header_timeout, resolver_timeout,

send_timeout,

keep_alive и time_out’ы

Page 33: Web   лекция 3 Web серверы

33

• VirtualHost

• ServerName

• ServerAlias

VirtualHost (Apache)

Page 34: Web   лекция 3 Web серверы

34

• server {}

• server_name

• listen

Сервера

Page 35: Web   лекция 3 Web серверы

35

• DocumentRoot

• Alias/AliasMatch

• ScriptAlias/ScriptAliasMatch

• UserDir

Добраться до файлов (Apache)

Page 36: Web   лекция 3 Web серверы

36

• root

Добраться до файлов

• empty_gif

• random_index

Page 37: Web   лекция 3 Web серверы

37

• ErrorLog

• ErrorLogFormat

• LogLevel

• LogFormat

• CustomLog/TransferLog

176.195.177.189 - - [02/Mar/2014:22:37:35 +0400] "GET /oborudovanie/pnevmaticheskie-zaglushki/ HTTP/1.0" 200 "http://yandex.ru/yandsearch?text=%D1%8F%D1%8D%D1%85%D1%82%D1%8C%D1%8E%D1%87%D1%80%D1%83%D1%8B%D1%94%C2%B0%D1%8A%D1%88&lr=213" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)"

80.76.108.27 - - [02/Mar/2014:23:24:59 +0400] "GET /webasyst/?action=count&background_process=1&_=1393788297367 HTTP/1.0" 200 "http://attivo.ru/webasyst/shop/?action=orders" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36"

Логи (Apache)

Page 38: Web   лекция 3 Web серверы

38

• error_log

• access_log

• log_format

176.195.177.189 - - [02/Mar/2014:22:37:35 +0400] "GET /oborudovanie/pnevmaticheskie-zaglushki/ HTTP/1.0" 200 "http://yandex.ru/yandsearch?text=%D1%8F%D1%8D%D1%85%D1%82%D1%8C%D1%8E%D1%87%D1%80%D1%83%D1%8B%D1%94%C2%B0%D1%8A%D1%88&lr=213" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)"

80.76.108.27 - - [02/Mar/2014:23:24:59 +0400] "GET /webasyst/?action=count&background_process=1&_=1393788297367 HTTP/1.0" 200 "http://attivo.ru/webasyst/shop/?action=orders" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36"

Логи

Page 39: Web   лекция 3 Web серверы

39

• Redirect/RedirectMatch

• ErrorDocument code page

• RewriteEngine on

• RewriteCond expr "! %{HTTP_REFERER} -strmatch

'*://%{HTTP_HOST}/*'“

• RewriteRule ^/$ /homepage.std.html

mod_rewrite (Apache)

Page 40: Web   лекция 3 Web серверы

40

• rewrite from to [redirect|permanent|break|last]

• error_page code page

• return code

ngx_http_rewrite_module

Page 41: Web   лекция 3 Web серверы

41

Авторизация (Apache)

Page 42: Web   лекция 3 Web серверы

42

Авторизация

ngx_http_auth_request_module

Page 43: Web   лекция 3 Web серверы

43

proxy

• proxy_pass

• proxy_cache_valid

• proxy_cache_key

• proxy_cache_min_uses

• 12 proxy_* директив про пути и размеры буферов

• 4 proxy_* директивы про timeout

Page 44: Web   лекция 3 Web серверы

44

upstream

Page 45: Web   лекция 3 Web серверы

45

ngx_http_memcached_module

И, конечно, одна директива про размер буфера и две

директивы про timeout

Page 46: Web   лекция 3 Web серверы

46

• LimitRequestBody

• LimitRequestFields

• LimitRequestFieldsSize

• LimitRequestLine

• Rlimit*

Ограничения клиента и сервера (apache)

Page 47: Web   лекция 3 Web серверы

47

• client_max_body_size

• large_client_header_buffers

• worker_rlimit_*

• limit_rate

Ограничения клиента и сервера

Page 48: Web   лекция 3 Web серверы

48

ngx_http_limit_req_module

Page 49: Web   лекция 3 Web серверы

49

Ограничение скорости

• limit_rate

• limit_rate_after

Page 50: Web   лекция 3 Web серверы

50

• If, ElseIf, Else

• IfModule

• IfDefine

• IfVersion

• Error

If (Apache)

Page 51: Web   лекция 3 Web серверы

51

• if

• set

• perl

if

Page 52: Web   лекция 3 Web серверы

52

Вопросы

Page 53: Web   лекция 3 Web серверы

Спасибо за внимание!

Александр Горный, [email protected]

Сергей Лихобабин, [email protected]