SlideShare a Scribd company logo
WEB SERVERS
A web server is specialised software that
responds to client (I.e. web browser) requests
Every web site requires a web server to process
client requests and ‘serve up’ the pages
Web servers used to service Internet, intranets
and extranets
A web server is part of a multi-tier application (also called
n-tier application Functionality is divided into separate
tiers or groupings
Tiers can be on same computer or on separate computers
Web applications are often three tiered:
• Information tier (also called data tier)
• Middle tier
• Client tier (user interface tier)
Hyper Text Transfer Protocol
Web servers communicate with clients using a Response-Request protocol: HTTP
• A request is generated by a client (by browser
software)
- Most common requests are “Get” and “Post”
• Request reaches the appropriate web-server
• Request is processed by the web-server
• A response is formulated by the web server
and sent back to the client (e.g. web page
contents)
Client-Server model and HTTP
• HTTP is the de facto standard for transferring
World Wide Web documents
• Usually to port 80
• HTTP messages (requests and responses)
between client and server are human
readable
Http: Requests from client
• Request
– Get resource
– Type of browser
– Name of host
– etc
• First line is request-line. Contains the nature of the
Request e.g.
– GET: Get a file from the server
– POST: Post data to the server
– PUT: Store some resource
HTTP Response Status Codes
• 1XX: Provide information to the client
• 2XX: Correct response has occurred.
• 3XX: Browser must carry out some further action in order for the
request to be successful. For example, the code 301 indicates that
the resource that was requested has been permanently moved to
another location.
• 4XX: Something has gone wrong; for example, the most frequent
status code that is returned is 404 which indicates that the
resource that has been requested cannot be found.
• 5XX: Server has experienced a problem. For example, the status
code 503 indicates that the service requested has not been able to
be carried out.
Accessing web servers
web server functionality
But usually includes many other functions such as:
• File Transfer Protocol (FTP) server
• Simple Mail Transfer Protocol (SMTP) server (for
Email)
• Web development and publishing functionality
• Support for specific server side technologies
e.g. JSP, SSIs
• Security features
• And more
Selecting a web server
Performance
e.g. how many client requests per second can
be processed? Load balancing?
Reliability
How robust is the web server?
How liable to crash? How easily recovered?
Ease of Use
How easy to set up, administer, learn?
Support
What support is provided by the vendor?
Price
How must does it cost to buy and maintain?
Security
What security functionality is offered? e.g. SSL?
Functionality
• server side techologies supported? (as add-ons? – e.g. TomCat for Apache) e.g.
ASP? JSP? CGI? etc
• Logging
• Proxy server
Operating system
What operating system(s) does the web server support?
Типы HTTP серверов
• Статический веб-сервер, или стек, посылает
размещенные на нем файлы в браузер “как
есть”. (nginx, Apache)
• Динамических веб-сервер состоит из
статического веб-сервера плюс
дополнительного программного обеспечения,
наиболее часто сервером приложений
и базы данных. (Gunicorn, Waitress, Tornado)
• Статические Веб-сайты проще всего
установить. К ним относятся HTML страницы,
картинки, шрифты, CSS стили и прочее…
• Динамический Веб-сайт означает, что сервер
обрабатывает данные или даже генерирует их
на лету из базы данных. Это обеспечивает
больше гибкости, но технически сложнее в
обслуживании, что делает его более сложным
в разработке.
Связь Веб-приложения с HTTP-
сервером
• CGI
• FastCGI
• Встроенный сервер
• WSGI
CGI
CGI — это не язык программирования!
Это простой протокол, позволяющий Веб-
серверу передавать данные через stdin и
читать их из stdout.
Поэтому, в качестве CGI-обработчика может
использоваться программа на любом языке,
способном работать со стандартными
потоками ввода-вывода.
CGI. Переменные окружения
CGI. Преимущества
• Процесс CGI скрипта не зависит от Веб-
сервера и в случае падения ни как не
отразится на работе последнего.
• Может быть написан на любом языке
программирования.
• Поддерживается большинством Веб-
серверов.
CGI. Недостатки
• Потребление ресурсов
Дело в том, что каждое обращение к CGI-
приложению вызывает порождение нового
процесса, со всеми вытекающими отсюда
накладными расходами.
FastCGI
FastCGI
• В отличие от CGI, FastCGI использует
постоянно запущенные процессы для
обработки множества запросов.
• FastCGI-процессы используют для связи с
сервером Unix Domain Sockets или TCP/IP.
Встроенный сервер
В некоторых языках, например Go, уже
существует встроенный Веб-сервер.
WEB SERVERS(IIS, APACHE,
NGINX)
• 1) Client sends request to server.
• 2) Server accepts the request and then
process it.
• 3) Server sends back the request to client.
HISTORY
• 1989
• CERN httpd
• Sir Tim Berners-Lee
TYPES OF WEB SERVERS
• Dedicated Server:
- physical server
- purchased or rented for your own business
needs
- For large businesses
- high levels of data security
- running 24*7*365
• Cloud Server:
- virtual server
- less costs
- for small and mid-sized businesses
HANDLE REQUESTS
1. append the given path to the path of root directory
• Root directory in configs
• Https://arastu.ir/a/b/c.pdf
/home/arastu/www/arastu.ir/a/b/c.pdf
2. Create Response
• Based on configs
• Create response dynamically with server side
programming languages
• Return static file
• Error
WEB SERVERS
• IIS
• Apache
• Nginx
IIS
Components:
• HTTP .sys
• Worker processes (w3wp.exe)
• ISAPI
• InetInfo.exe
• Application pools
• IIS ( Internet Information Services, до версии 5.1 —
Internet Information Server ) — проприетарный
набор серверов для нескольких служб Интернета от
компании Майкрософт.
• IIS распространяется с операционными системами
семейства Windows NT. Основным компонентом IIS
является веб-сервер, который позволяет размещать
в Интернете сайты. IIS поддерживает протоколы
HTTP, HTTPS, FTP, POP3, SMTP, NNTP.
Служба WWW в составе IIS
• Основным компонентом IIS является веб-сервер —
служба WWW (называемая также W3SVC), которая
предоставляет клиентам доступ к сайтам по протоколам
HTTP и, если произведена настройка, HTTPS.
• Один сервер IIS может обслуживать несколько сайтов
(IIS 6.0 и выше). Каждый сайт имеет следующие
атрибуты:
• IP-адрес сайта;
• TCP-порт, на котором служба WWW ожидает
подключений к данному сайту;
• Заголовок узла (Host header name) — значение
заголовка Host запроса HTTP, указывающее обычно DNS-
имя сайта.
Архитектура службы WWW
• В IIS 6.0, доступном в составе систем
Windows Server 2003, служба WWW
претерпела серьёзные изменения. Был
добавлен новый режим обработки
запросов, называемый режимом изоляции
рабочих процессов (англ. worker process
isolation mode).
Безопасность в службе WWW
• Веб-сервер IIS предоставляет несколько
способов разграничения доступа к сайтам и
веб-приложениям. Служба WWW в составе
IIS отличается от других веб-серверов тем,
что функции обеспечения безопасности в
ней тесно интегрированы с системой
Windows NT, на основе которой она
работает.
Служба WWW поддерживает три
основных метода аутентификации
• Базовая аутентификация (basic authentication) —
имя и пароль передаются по сети открытым
текстом.
• Сжатая аутентификация (digest authentication) —
пароль обрабатывается хеш-функцией перед
отправкой по сети, что делает невозможным его
прочтение в случае перехвата злоумышленником.
• Встроенная аутентификация Windows (integrated
Windows authentication) — выполняется попытка
входа на сервер с теми же учётными данными, под
которыми работает браузер пользователя.
Реализация веб-приложений для IIS
• Веб-сервер IIS поддерживает несколько различных технологий
создания веб-приложений:
• ASP.NET — разработанная Microsoft технология;
• ASP — предшествовавшая ASP.NET технология создания
динамических веб-страниц на основе сценариев. Входит в
поставку IIS начиная с версии 3.0.
• CGI — стандартная межплатформенная низкоуровневая
технология создания динамических веб-страниц.
• FastCGI — клиент-серверный протокол взаимодействия веб-
сервера и приложения.
• ISAPI — низкоуровневая технология, аналогичная интерфейсу
модулей Apache, предоставляющая полный доступ ко всем
возможностям IIS,
• SSI — включение в одни страницы текста из других страниц.
apache
• Apache HTTP-сервер ( сокращение от англ. a
patchy server ) — свободный веб-сервер.
• Apache является кроссплатформенным ПО,
поддерживает операционные системы Linux, BSD,
Mac OS, Microsoft Windows, Novell NetWare, BeOS.
• Основными достоинствами Apache считаются
надёжность и гибкость конфигурации. Он позволяет
подключать внешние модули для предоставления
данных, использовать СУБД для аутентификации
пользователей, модифицировать сообщения об
ошибках и т. д. Поддерживает IPv6.
Архитектура Apache
• Ядро Apache включает в себя основные ункциональные
возможности, такие как обработка конфигурационных
файлов, протокол HTTP и система загрузки модулей.
Ядро (в отличие от модулей) полностью
разрабатывается Apache Software Foundation, без
участия сторонних программистов.
• Теоретически, ядро apache может функционировать в
чистом виде, без использования модулей. Однако,
функциональность такого решения крайне ограничена.
• Ядро Apache полностью написано на языке
программирования C.
• Механизм виртуальных хостов. Apache имеет
встроенный механизм виртуальных хостов. Он
позволяет полноценно обслуживать на одном IP-
адресе множество сайтов (доменных имён),
отображая для каждого из них собственное
содержимое.
• Для каждого виртуального хоста можно указать
собственные настройки ядра и модулей, ограничить
доступ ко всему сайту или отдельным файлам.
Некоторые MPM, например Apache-ITK позволяют
запускать процесс httpd для каждого виртуального
хоста с отдельными идентификаторами uid и guid.
Интеграция с другим ПО и языками
программирования
• Существует множество модулей, добавляющих
к Apache поддержку различных языков
программирования и систем разработки.
• PHP (mod_php).
• Python (mod python, mod wsgi).
• Ruby (apache-ruby).
• Perl (mod perl).
• ASP (apache-asp).
• Tcl (rivet)
Безопасность
• Ограничение доступа к определённым директориям или
файлам.
• Механизм авторизации пользователей для доступа к
директории по методу HTTP-Авторизации (mod_auth_basic) и
digest-авторизации (mod_auth_digest).
• Ограничение доступа к определённым директориям или всему
серверу, основанное на IP-адресах пользователей.
• Запрет доступа к определённым типам файлов для всех или
части пользователей, например запрет доступа к
конфигурационным файлам и файлам баз данных.
• Существуют модули, реализующие авторизацию через СУБД
или PAM.
NGINX
• nginx ( англ. engine x ) ( по-русски
произносится как энджин-экс ) — веб-
сервер и почтовый прокси-сервер,
работающий на Unix-подобных
операционных системах (тестировалась
сборка и работа на FreeBSD, OpenBSD, Linux,
Solaris, Mac OS X, AIX). Начиная с версии
0.7.52 появилась бинарная сборка под
Microsoft Windows.
Основные функции HTTP-сервер
NGINX
• обслуживание статических запросов, индексных файлов,
автоматическое создание списка файлов, кеш дескрипторов открытых
файлов
• акселерированное проксирование без кэширования, простое
распределение нагрузки и отказоустойчивость
• поддержка кеширования при акселерированном проксировании и
FastCGI
• акселерированная поддержка FastCGI и memcached серверов, простое
распределение нагрузки и отказоустойчивость
• модульность, фильтры, в том числе сжатие (gzip), byte-ranges
(докачка), chunked ответы, HTTP-аутентификация, SSI-фильтр
• несколько подзапросов на одной странице, обрабатываемые в SSI-
фильтре через прокси или FastCGI, выполняются параллельно
• поддержка SSL
• экспериментальная поддержка встроенного Perl
Архитектура
• В nginx рабочие процессы обслуживают одновременно
множество соединений, мультиплексируя их вызовами
операционной системы select, epoll (Linux) и kqueue (FreeBSD).
Рабочие процессы выполняют цикл обработки событий от
дескрипторов (см. Событийно - ориентированное
программирование).
• Cодержит модуль географической классификации клиентов по
IP-адресу. В его основу входит база данных соответствия IP-
адресов географическому региону, представленная в виде Radix
tree (сжатое префиксное дерево или сжатый бор) в
оперативной памяти. nginx предварительно распределяет
первые несколько уровней дерева, таким образом, чтобы они
занимали ровно 1 страницу памяти. Это гарантирует, что при
поиске IP-адреса для первых нескольких узлов при трансляции
адреса всегда найдётся запись в TLB.
Web servers
Web servers
COMBINATION OF APACHE AND NGINX
• https://www.getpostman.com/downloads/
• https://jsonplaceholder.typicode.com/
• https://github.com/typicode/json-server

More Related Content

PPTX
Azure web apps - designing and debugging
PDF
Microsoft Internet Information Services 2007
PPTX
Балансировка нагрузки веб-серверов
PPT
1С-Битрикс - Производительность
PPT
1С-Битрикс - Веб-кластер
PPTX
Microsoft Azure Pryaniky.com
PPTX
Windows Azure Service Bus
PDF
Микросервисная архитектура на базе CoreOS и Kubernetes
Azure web apps - designing and debugging
Microsoft Internet Information Services 2007
Балансировка нагрузки веб-серверов
1С-Битрикс - Производительность
1С-Битрикс - Веб-кластер
Microsoft Azure Pryaniky.com
Windows Azure Service Bus
Микросервисная архитектура на базе CoreOS и Kubernetes

Similar to Web servers (20)

PDF
Веб-сервер
PDF
Экскурс в мир WEB разработки
PPTX
Андрей Завадский "Бессерверная архитектура"
PDF
Павел Брылов, Skype
PDF
Разработка мобильного и веб интерфейса для Caché
PDF
Web and mobile development for intersystems caché, Eduard Lebedyuk
PPTX
интернет1
PPT
IIS7 possibilities
PPTX
Стажировка-2013, разработчики, занятие 7. Web, HTTP
PPTX
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
PPTX
Стажировка-2014, занятие 6 (часть 1). Web-приложения
PDF
FT & HA Rails приложений приложений — это просто
PDF
Как превратить приложение в платформу
PPTX
Open source technologies in Microsoft cloud - MS SWIT 2014
PPT
8 создание приложений по технологии windows communications foundation
PDF
Microsoft Virtualization(Plex)
PPTX
Errors Tracker
PDF
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
PPT
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
PPTX
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Веб-сервер
Экскурс в мир WEB разработки
Андрей Завадский "Бессерверная архитектура"
Павел Брылов, Skype
Разработка мобильного и веб интерфейса для Caché
Web and mobile development for intersystems caché, Eduard Lebedyuk
интернет1
IIS7 possibilities
Стажировка-2013, разработчики, занятие 7. Web, HTTP
Спецкурс "Современные практики разработки ПО", 2013-2014 уч. год, занятие 6
Стажировка-2014, занятие 6 (часть 1). Web-приложения
FT & HA Rails приложений приложений — это просто
Как превратить приложение в платформу
Open source technologies in Microsoft cloud - MS SWIT 2014
8 создание приложений по технологии windows communications foundation
Microsoft Virtualization(Plex)
Errors Tracker
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
DevConf2013: Особенности применения WebSocket на примере работы в ERP системе.
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Ad

More from Dmitrii Stoian (19)

PPTX
PPTX
PPTX
Devtools
PPTX
Controlul versiunilor
PPTX
Crearea prototipurilor
PPTX
Medii de dezvoltare node.js npm
PPTX
Bazele conceptuale a dezvoltarii produselor
PPTX
Webpack
PPTX
010. animatii
PPTX
009. compresia imaginilor digitale
PPT
008. iimagini ca entitate mutimedia
PPTX
007. culoare in entitati multimedia
PPTX
006. textul – entitate de studiu multimedia
PPTX
005. html5 si canvas
PPTX
004. prelucrarea evenimentelor js
PPTX
003. manipularea cu dom
PPTX
002. Introducere in type script
PPT
001.Introducere in tehnologii mutimedia
Devtools
Controlul versiunilor
Crearea prototipurilor
Medii de dezvoltare node.js npm
Bazele conceptuale a dezvoltarii produselor
Webpack
010. animatii
009. compresia imaginilor digitale
008. iimagini ca entitate mutimedia
007. culoare in entitati multimedia
006. textul – entitate de studiu multimedia
005. html5 si canvas
004. prelucrarea evenimentelor js
003. manipularea cu dom
002. Introducere in type script
001.Introducere in tehnologii mutimedia
Ad

Web servers

  • 2. A web server is specialised software that responds to client (I.e. web browser) requests Every web site requires a web server to process client requests and ‘serve up’ the pages Web servers used to service Internet, intranets and extranets
  • 3. A web server is part of a multi-tier application (also called n-tier application Functionality is divided into separate tiers or groupings Tiers can be on same computer or on separate computers Web applications are often three tiered: • Information tier (also called data tier) • Middle tier • Client tier (user interface tier)
  • 4. Hyper Text Transfer Protocol Web servers communicate with clients using a Response-Request protocol: HTTP
  • 5. • A request is generated by a client (by browser software) - Most common requests are “Get” and “Post” • Request reaches the appropriate web-server • Request is processed by the web-server • A response is formulated by the web server and sent back to the client (e.g. web page contents)
  • 6. Client-Server model and HTTP • HTTP is the de facto standard for transferring World Wide Web documents • Usually to port 80 • HTTP messages (requests and responses) between client and server are human readable
  • 7. Http: Requests from client • Request – Get resource – Type of browser – Name of host – etc • First line is request-line. Contains the nature of the Request e.g. – GET: Get a file from the server – POST: Post data to the server – PUT: Store some resource
  • 8. HTTP Response Status Codes • 1XX: Provide information to the client • 2XX: Correct response has occurred. • 3XX: Browser must carry out some further action in order for the request to be successful. For example, the code 301 indicates that the resource that was requested has been permanently moved to another location. • 4XX: Something has gone wrong; for example, the most frequent status code that is returned is 404 which indicates that the resource that has been requested cannot be found. • 5XX: Server has experienced a problem. For example, the status code 503 indicates that the service requested has not been able to be carried out.
  • 10. web server functionality But usually includes many other functions such as: • File Transfer Protocol (FTP) server • Simple Mail Transfer Protocol (SMTP) server (for Email) • Web development and publishing functionality • Support for specific server side technologies e.g. JSP, SSIs • Security features • And more
  • 11. Selecting a web server Performance e.g. how many client requests per second can be processed? Load balancing? Reliability How robust is the web server? How liable to crash? How easily recovered?
  • 12. Ease of Use How easy to set up, administer, learn? Support What support is provided by the vendor? Price How must does it cost to buy and maintain? Security What security functionality is offered? e.g. SSL? Functionality • server side techologies supported? (as add-ons? – e.g. TomCat for Apache) e.g. ASP? JSP? CGI? etc • Logging • Proxy server Operating system What operating system(s) does the web server support?
  • 13. Типы HTTP серверов • Статический веб-сервер, или стек, посылает размещенные на нем файлы в браузер “как есть”. (nginx, Apache) • Динамических веб-сервер состоит из статического веб-сервера плюс дополнительного программного обеспечения, наиболее часто сервером приложений и базы данных. (Gunicorn, Waitress, Tornado)
  • 14. • Статические Веб-сайты проще всего установить. К ним относятся HTML страницы, картинки, шрифты, CSS стили и прочее… • Динамический Веб-сайт означает, что сервер обрабатывает данные или даже генерирует их на лету из базы данных. Это обеспечивает больше гибкости, но технически сложнее в обслуживании, что делает его более сложным в разработке.
  • 15. Связь Веб-приложения с HTTP- сервером • CGI • FastCGI • Встроенный сервер • WSGI
  • 16. CGI
  • 17. CGI — это не язык программирования! Это простой протокол, позволяющий Веб- серверу передавать данные через stdin и читать их из stdout. Поэтому, в качестве CGI-обработчика может использоваться программа на любом языке, способном работать со стандартными потоками ввода-вывода.
  • 19. CGI. Преимущества • Процесс CGI скрипта не зависит от Веб- сервера и в случае падения ни как не отразится на работе последнего. • Может быть написан на любом языке программирования. • Поддерживается большинством Веб- серверов.
  • 20. CGI. Недостатки • Потребление ресурсов Дело в том, что каждое обращение к CGI- приложению вызывает порождение нового процесса, со всеми вытекающими отсюда накладными расходами.
  • 22. FastCGI • В отличие от CGI, FastCGI использует постоянно запущенные процессы для обработки множества запросов. • FastCGI-процессы используют для связи с сервером Unix Domain Sockets или TCP/IP.
  • 23. Встроенный сервер В некоторых языках, например Go, уже существует встроенный Веб-сервер.
  • 24. WEB SERVERS(IIS, APACHE, NGINX) • 1) Client sends request to server. • 2) Server accepts the request and then process it. • 3) Server sends back the request to client.
  • 25. HISTORY • 1989 • CERN httpd • Sir Tim Berners-Lee
  • 26. TYPES OF WEB SERVERS • Dedicated Server: - physical server - purchased or rented for your own business needs - For large businesses - high levels of data security - running 24*7*365
  • 27. • Cloud Server: - virtual server - less costs - for small and mid-sized businesses
  • 28. HANDLE REQUESTS 1. append the given path to the path of root directory • Root directory in configs • Https://arastu.ir/a/b/c.pdf /home/arastu/www/arastu.ir/a/b/c.pdf 2. Create Response • Based on configs • Create response dynamically with server side programming languages • Return static file • Error
  • 29. WEB SERVERS • IIS • Apache • Nginx
  • 30. IIS
  • 31. Components: • HTTP .sys • Worker processes (w3wp.exe) • ISAPI • InetInfo.exe • Application pools
  • 32. • IIS ( Internet Information Services, до версии 5.1 — Internet Information Server ) — проприетарный набор серверов для нескольких служб Интернета от компании Майкрософт. • IIS распространяется с операционными системами семейства Windows NT. Основным компонентом IIS является веб-сервер, который позволяет размещать в Интернете сайты. IIS поддерживает протоколы HTTP, HTTPS, FTP, POP3, SMTP, NNTP.
  • 33. Служба WWW в составе IIS • Основным компонентом IIS является веб-сервер — служба WWW (называемая также W3SVC), которая предоставляет клиентам доступ к сайтам по протоколам HTTP и, если произведена настройка, HTTPS. • Один сервер IIS может обслуживать несколько сайтов (IIS 6.0 и выше). Каждый сайт имеет следующие атрибуты: • IP-адрес сайта; • TCP-порт, на котором служба WWW ожидает подключений к данному сайту; • Заголовок узла (Host header name) — значение заголовка Host запроса HTTP, указывающее обычно DNS- имя сайта.
  • 34. Архитектура службы WWW • В IIS 6.0, доступном в составе систем Windows Server 2003, служба WWW претерпела серьёзные изменения. Был добавлен новый режим обработки запросов, называемый режимом изоляции рабочих процессов (англ. worker process isolation mode).
  • 35. Безопасность в службе WWW • Веб-сервер IIS предоставляет несколько способов разграничения доступа к сайтам и веб-приложениям. Служба WWW в составе IIS отличается от других веб-серверов тем, что функции обеспечения безопасности в ней тесно интегрированы с системой Windows NT, на основе которой она работает.
  • 36. Служба WWW поддерживает три основных метода аутентификации • Базовая аутентификация (basic authentication) — имя и пароль передаются по сети открытым текстом. • Сжатая аутентификация (digest authentication) — пароль обрабатывается хеш-функцией перед отправкой по сети, что делает невозможным его прочтение в случае перехвата злоумышленником. • Встроенная аутентификация Windows (integrated Windows authentication) — выполняется попытка входа на сервер с теми же учётными данными, под которыми работает браузер пользователя.
  • 37. Реализация веб-приложений для IIS • Веб-сервер IIS поддерживает несколько различных технологий создания веб-приложений: • ASP.NET — разработанная Microsoft технология; • ASP — предшествовавшая ASP.NET технология создания динамических веб-страниц на основе сценариев. Входит в поставку IIS начиная с версии 3.0. • CGI — стандартная межплатформенная низкоуровневая технология создания динамических веб-страниц. • FastCGI — клиент-серверный протокол взаимодействия веб- сервера и приложения. • ISAPI — низкоуровневая технология, аналогичная интерфейсу модулей Apache, предоставляющая полный доступ ко всем возможностям IIS, • SSI — включение в одни страницы текста из других страниц.
  • 39. • Apache HTTP-сервер ( сокращение от англ. a patchy server ) — свободный веб-сервер. • Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS. • Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6.
  • 40. Архитектура Apache • Ядро Apache включает в себя основные ункциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается Apache Software Foundation, без участия сторонних программистов. • Теоретически, ядро apache может функционировать в чистом виде, без использования модулей. Однако, функциональность такого решения крайне ограничена. • Ядро Apache полностью написано на языке программирования C.
  • 41. • Механизм виртуальных хостов. Apache имеет встроенный механизм виртуальных хостов. Он позволяет полноценно обслуживать на одном IP- адресе множество сайтов (доменных имён), отображая для каждого из них собственное содержимое. • Для каждого виртуального хоста можно указать собственные настройки ядра и модулей, ограничить доступ ко всему сайту или отдельным файлам. Некоторые MPM, например Apache-ITK позволяют запускать процесс httpd для каждого виртуального хоста с отдельными идентификаторами uid и guid.
  • 42. Интеграция с другим ПО и языками программирования • Существует множество модулей, добавляющих к Apache поддержку различных языков программирования и систем разработки. • PHP (mod_php). • Python (mod python, mod wsgi). • Ruby (apache-ruby). • Perl (mod perl). • ASP (apache-asp). • Tcl (rivet)
  • 43. Безопасность • Ограничение доступа к определённым директориям или файлам. • Механизм авторизации пользователей для доступа к директории по методу HTTP-Авторизации (mod_auth_basic) и digest-авторизации (mod_auth_digest). • Ограничение доступа к определённым директориям или всему серверу, основанное на IP-адресах пользователей. • Запрет доступа к определённым типам файлов для всех или части пользователей, например запрет доступа к конфигурационным файлам и файлам баз данных. • Существуют модули, реализующие авторизацию через СУБД или PAM.
  • 44. NGINX
  • 45. • nginx ( англ. engine x ) ( по-русски произносится как энджин-экс ) — веб- сервер и почтовый прокси-сервер, работающий на Unix-подобных операционных системах (тестировалась сборка и работа на FreeBSD, OpenBSD, Linux, Solaris, Mac OS X, AIX). Начиная с версии 0.7.52 появилась бинарная сборка под Microsoft Windows.
  • 46. Основные функции HTTP-сервер NGINX • обслуживание статических запросов, индексных файлов, автоматическое создание списка файлов, кеш дескрипторов открытых файлов • акселерированное проксирование без кэширования, простое распределение нагрузки и отказоустойчивость • поддержка кеширования при акселерированном проксировании и FastCGI • акселерированная поддержка FastCGI и memcached серверов, простое распределение нагрузки и отказоустойчивость • модульность, фильтры, в том числе сжатие (gzip), byte-ranges (докачка), chunked ответы, HTTP-аутентификация, SSI-фильтр • несколько подзапросов на одной странице, обрабатываемые в SSI- фильтре через прокси или FastCGI, выполняются параллельно • поддержка SSL • экспериментальная поддержка встроенного Perl
  • 47. Архитектура • В nginx рабочие процессы обслуживают одновременно множество соединений, мультиплексируя их вызовами операционной системы select, epoll (Linux) и kqueue (FreeBSD). Рабочие процессы выполняют цикл обработки событий от дескрипторов (см. Событийно - ориентированное программирование). • Cодержит модуль географической классификации клиентов по IP-адресу. В его основу входит база данных соответствия IP- адресов географическому региону, представленная в виде Radix tree (сжатое префиксное дерево или сжатый бор) в оперативной памяти. nginx предварительно распределяет первые несколько уровней дерева, таким образом, чтобы они занимали ровно 1 страницу памяти. Это гарантирует, что при поиске IP-адреса для первых нескольких узлов при трансляции адреса всегда найдётся запись в TLB.