сервер | это… Что такое Web-сервер?
ТолкованиеПеревод
- Web-сервер
Архитектура серверов Wikimedia
Веб-сервер — это сервер, принимающий веб-браузеров, и выдающий им HTML-страницей, изображением, файлом, медиа-потоком или другими данными. Веб-серверы — основа Всемирной паутины.
Веб-сервером называют как программное обеспечение, выполняющее функции веб-сервера, так и компьютер, на котором это программное обеспечение работает.
Клиенты получают доступ к веб-серверу по веб-страницы или другого ресурса.
Содержание
- 1 Дополнительные функции
- 2 Программное обеспечение
- 3 Клиенты
- 4 Примечания
- 5 См. также
- 6 Ссылки
Дополнительные функции
Дополнительными функциями многих веб-серверов являются:
- ведение журнала обращений пользователей к ресурсам,
- аутентификация пользователей,
- поддержка динамически генерируемых страниц,
- поддержка
Программное обеспечение
На сегодня двумя наиболее распространёнными веб-серверами, вместе занимающими около 85 % рынка [1][2], являются:
- свободный веб-сервер, наиболее часто используется в Unix-подобных ОС
- IIS от компании ОС семейства Windows NT
Также на текущий момент известны такие сервера как:
- свободный веб-сервер, разработанный Игорем Сысоевым в 2002 году. В текущий момент пользуется большой популярностью на крупных сайтах.
- свободный веб-сервер, разрабатываемый с расчётом на быстроту и защищённость, а также соответствие стандартам.
- GWS (Google Web Server) — веб-сервер разработанный компанией Resin — свободный высокопроизводительный веб-сервер приложений включающий в себя такие черты как масштабируемость, и распределение нагрузки.
Клиенты
В качестве клиентов для обращения к веб-серверам могут использоваться совершенно различные устройства:
- Веб-браузер — самый распространенный способ
- Специальное программное обеспечение может самостоятельно обращаться к веб-серверам для получения обновлений или другой информации
- Мобильный телефон может получить доступ к ресурсам веб-сервера при помощи протокола WAP
- Другие интеллектуальные устройства или бытовая техника
Примечания
- ↑ Наиболее популярные веб-серверы на 2007 по данным netcraft.com
- ↑ June 2008 — Netcraft Web Server Survey
См.
также- Список веб-серверов
Ссылки
- Netcraft — Определение и сбор статистики по используемым веб-серверам в мире
- Сервис определения веб-серверов на сайте Whois-сервис Россия
Wikimedia Foundation. 2010.
Поможем решить контрольную работу
- Web
- Web-камера
Полезное
Конфигурация web сервера
- Информация о настройках web домена хранится во внутренней базе ISPmanager. Т.е. никакие изменения, вносимые в конфиги вручную, не влияют на состояние, отображаемое в панели, и могут быть потеряны при изменении параметров из панели, если настройки, сделанные вручную, и настройки, сделанные из панели, конфликтуют. Тем не менее вы можете вносить изменения в конфигурацию сервера вручную. Эти изменения будут сохранены при редактировании домена, если это возможно.
- Все настройки отдельного web домена находятся в отдельном файле. Файлы раскладываются по каталогам по имени владельца домена
- Настройки доступа к каталогам (diraccess) записываются в конфиг web сервера, в тот же файл что и настройки соответствующего web домена (раньше для этого использовался .htaccess)
- PHP может работать как через apache, так и через nginx (используется php-fpm). В связи с тем, что появилась возможность пользоваться php, не используя apache, при совместном использовании apache и nginx сервер apache может быть не запущен, если запрос может быть обработан средствами nginx.
- Появилась возможность использовать несколько IP адресов для web домена
- При включении SSL в настройках nginx создается отдельная секция server
- Для ротации журналов запросов и ошибок используется logrotate
Настройка web-сервера
Следующая группа параметров используется вне зависимости от того, какой web сервер вы используете
path php-cgi <полный путь>
Путь до исполняемого файла php-cgi
WebDefaultAliases <список алиасов>
Набор дополнительных имен, которые будут предложены автоматически при создании web домена. Вы можете использовать макрос _name_, чтобы подставить в строку основное имя домена
BackendBind <ip адрес+порт>
Адрес, на котором будет поднят backend (web сервер, на который будет передавать запросы frontend сервер). При одновременной установке nginx и apache backend — apache.
WebModules <список модулей>
Список используемых web серверов
WebUser <имя>
Имя пользователя, с правами которого работает web сервер (необходимо указывать именно имя, а не uid)
WebGroup <имя>
Группа, с правами которой работат web сервер (необходимо указывать именно имя, а не gid)
WebRestartDelay <секунды>
Минимальное время, которое должно проходить между перезапусками web сервера
SSLSecureProtocols <список протоколов>
Список протоколов, указываемых web-серверу для использования в случае, если используется повышенная безопасность SSL (например, SSLSecureProtocols TLSv1 TLSv1. 1 TLSv1.2)
SSLSecureChiphers <список шифров>
Список шифров в формате openssl, указываемых web-серверу для использования в случае, если используется повышенная безопасность SSL (например, SSLSecureChiphers HIGH:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!EXP:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2)
ApsExtRepository <URL репозитария>
Путь до xml-файла внешнего репозитория APS
Option ApsRepositoryUpdated
Наличие этой опции указывает, что при старте панели управления не нужно выполнять обновления списка APS-скриптов
Option DisableSecurePhpBin
Наличие этой опции отключает создание защищенной директории php-bin (DefaultHomeDir/php-bin/username) для пользователя и создание хардлинок для php и php.ini из домашней директории пользователя в защищенную директорию (применяется в режимах работы php как CGI или FastCGI (Apache)). Вместо этого php и php.ini будут создаваться в директории php-bin пользователя
Список доступных кодировок web домена берется из файла etc/charset. По умолчанию в нем указана только utf-8.
Настройка Apache
Во время запуска панели происходит опрос загруженных модулей apache. Так мы определяем список возможных настроек
cgi_module
возможность работы с CGI скриптами
fastcgi_module или fcgid_module
возможность работы с php в режиме fastcgi
php5_module
возможность работы c php через модуль apache
Если есть поддержка CGI и найден файл, указанный в path php-cgi, появляется возможность работы с php в режиме CGI
Далее приведен список параметров, используемых для настройки панели под конкретную конфигурацию apache.
Option ApacheITK
Добавляется, если используется apache ITK. При этом в конфиг вместо директивы SuexecUserGroup пишется AssignUserID
path apachectl <имя>
Путь до программы/скрипта, используемого для перезапуска apache. Должен уметь обрабатывать следующие параметры: -M (получить список модулей), graceful (мягкая перезагрузка), restart (жесткая перезагрузка, используется при добавлении/удалении IP адресов)
path apache-vhosts <каталог>
Имя каталога, в котором будут создаваться файлы с настройками web доменов
path apache. conf <путь>
Путь до основного файла конфигурации apache. В него будут записываться директивы Listen и NameVirtualHost
ApacheWidePorts <список портов>
Для указанных портов в apache будет добавляется Listen для всех IP адресов сервера. По умолчанию: 80 443. Это позволяет уменьшить количество жестких перезапусков apache.
Настройка Nginx
Во время запуска панели проверяется наличие сервиса php-fpm. Если он найден, будет доступно использовать в настройках web доменов php в режиме fastcgi.
Далее приведен список параметров, используемых для настройки панели под конкретную конфигурацию nginx.
path nginx-vhosts <каталог>
Имя каталога, в котором будут создаваться файлы с настройками web доменов
path nginx-vhosts-includes <список каталогов>
Пути до файлов с дополнительными настройками, которые будут добавлены в секцию server каждого web домена (используется директива Include)
path fpm-pool. d <каталог>
Имя каталога, в котором будут создаваться файлы с настройками php-fpm
path fpm-service <имя>
Имя сервиса php-fpm. Используется для его перезапуска при добавлении новых пользователей.
path nginx-static <регулярное выражение>
Используется для определения файлов, которые nginx должен отдавать самостоятельно.
path nginxctl <команда>
Используется для перезапуска nginx при добавлении новых web доменов. Должна обрабатывать параметры: reload (перечитать настройки web доменов), restart (перезапустить nginx, используется при добавлении/удалении IP адресов), stop/start (запустить nginx, используется при конвертации настроек в случае добавления/удаления web сервера)
path nginx-configtest <команда>
Используется для проверки корректности содержимого конфигурационных файлов Nginx. По умолчанию равна [path nginxctl] configtest
path nginx <команда>
Используется при запуске панели для проверки работоспособности nginx.
ForwardedSecret
В случае, если вы переправляете запросы из nginx в панель, мы определяем обратный адрес по HTTP заголовку X-Forwarded-For. Злоумышленник получает возможность подменить обратный адрес, используя этот заголовок, что, в свою очередь, позволяет ему воспользоваться чужими COOKIE для выполнения запросов от имени другого пользователя. Панель игнорирует заголовок X-Forwarded-For, если запрос не содержит заголовка X-Forwarded-Secret с таким же значением, как то, что записано в конфиге.
Перезапуск web сервера
Попытка перезапуска web сервера происходит через 2 секунды после последнего изменения настроек. Если в течение этого времени происходят другие изменения, то перезапуск будет отложен еще на 2 секунды. Дополнительно вы можете задать параметр WebRestartDelay — минимальную задержку между последовательными перезапусками web сервера.
В случае, если изменения не затрагивали списка прослушиваемых IP адресов/портов, делается мягкая перезагрузка web сервера, в противном случае сервер перезапускается полностью.
Ротация журналов
Все журналы web сервера записываются в каталог httpd-logs, недоступный пользователям. В домашнем каталоге пользователя создается каталог logs куда создаются жесткие ссылки на журналы посещений и ошибок web доменов пользователя. Кроме того, в каталог logs сохраняются старые копии журналов после ротации.
ISPmanager 6 использует logrotate для ротации журналов web сервера.
path logrotate.d <каталог>
Указывает каталог, куда будут сохраняться настройки logrotate (отдельные файлы для каждого web домена)
LogrotateInfiniteValue <целое число>
Указывает количество хранимых архивов, если в панели указано бесконечное значение
Анализаторы журналов
Теоретически, ISPmanager может работать с любыми анализаторами журналов. На данный момент через интерфейс могут быть установлены:
- awstats
- webalizer
path analyzer.d <каталог>
Указывает каталог, куда будут сохраняться скрипты для анализа журналов (отдельные файлы для каждого web домена)
При установке анализатора журналов в конфиг панели записывается следующая секция:
Analyzer awstats { ConfPath /etc/awstats/awstats. __NAME__.conf BinPath /usr/lib/cgi-bin/awstats.pl Lang en Lang ru }
ConfPath
указывает путь, куда будут сохраняться настройки анализатора для конкретного web домена
BinPath
указывает путь до исполняемого файла
Lang
указывает поддерживаемые языки. Секция Analyzer может содержать любое количество таких строк
При включении анализатора журналов из каталога etc/template берется соответствующий шаблон скрипта (имя файла совпадает с именем анализатора). В нем происходит подстановка всех макросов (список макросов можно узнать, включив дебаг для модуля web) и копируется в каталог analyzer.d. Дополнительно формируется конфиг. Из etc/template берется соответствующий файл с расширением .conf, в нем так же заменяются все макросы и он сохраняется в файл, имя которого указано в ConfPath (вместо _NAME_ подставляется имя web домена).
Полученный скрипт вызывается всякий раз при ротации журнала через logrotate.
Для правильной настройки отображения статистики при настройке web-домена также используются следующие параметры конфигурационного файла панели управления:
- AwstatsEncoding — кодировка генерируемых awstats html-страниц отчетов
- WebalizerEncoding — кодировка генерируемых webalizer html-страниц отчетов
По умолчанию данные параметры имеют значение «utf-8»
Переконфигурирование web-сервера
В процессе эксплуатации web-сервера и панели управления может возникнуть ситуация, когда нужно произвести полную переконфигурацию web-сервера. При этом действии конфигурационные файлы всех созданных с помощью панели управления web-доменов будут созданы заново.
Внимание! Данное действие не сохранит изменения в конфигурационных файлах, внесенные вручную!
Для выполнения операции последовательно нужно выполнить следующие функции:
webreconfigure. initialize с параметром shutdown=on webreconfigure.restore
Пример выполнения с помощью mgrctl для ISPmanager:
/usr/local/mgr5/sbin/mgrctl -m ispmgr webreconfigure.initialize shutdown=on /usr/local/mgr5/sbin/mgrctl -m ispmgr webreconfigure.restore
Что такое веб-сервер? Определение веб-сервера, значение веб-сервера
Что такое веб-сервер? Определение веб-сервера, значение веб-сервера – The Economic Times РостВозврат за 5 лет
12,27 %
Инвестировать сейчас
Поиск
+
Новости бизнеса›Определения›Разработка ПО›Web Server
Предложить новое определение
Предлагаемые определения будут рассмотрены для включения в Economictimes.com
Разработка программного обеспечения
Определение: Веб-сервер — это компьютер, на котором работают веб-сайты. Это компьютерная программа, которая распространяет веб-страницы по мере их запроса.
Описание: Основной задачей веб-сервера является отображение содержимого веб-сайта. Если веб-сервер не является общедоступным и используется для внутренних целей, он называется сервером интрасети. Когда кто-либо запрашивает веб-сайт, добавляя URL-адрес или веб-адрес в адресную строку веб-браузера (например, Chrome или Firefox) (например, www.economictimes.com), браузер отправляет запрос в Интернет для просмотра соответствующей веб-страницы для этого.
адрес. Сервер доменных имен (DNS) преобразует этот URL-адрес в IP-адрес (например, 192.168.216.345), который, в свою очередь, указывает на веб-сервер.Веб-сервер получает запрос на представление содержимого веб-сайта в браузере пользователя. Все веб-сайты в Интернете имеют уникальный идентификатор с точки зрения IP-адреса. Этот адрес интернет-протокола используется для связи между различными серверами через Интернет. В наши дни сервер Apache является наиболее распространенным веб-сервером, доступным на рынке. Apache — это программное обеспечение с открытым исходным кодом, которое поддерживает почти 70 процентов всех доступных сегодня веб-сайтов. Большинство веб-приложений используют Apache в качестве среды веб-сервера по умолчанию. Другим общедоступным веб-сервером является информационная служба Интернета (IIS). IIS принадлежит Microsoft. 9Связанные новости программы перед загрузкой фотографий с вашего мобильного телефона на сайты социальных сетей вскоре могут уйти в прошлое, поскольку исследователи создали новую систему, которая может автоматически ретушировать изображения в стиле профессионального фотографа.
Trending Definitions Долговые фонды Ставка репоВзаимный фондВаловой внутренний продуктСбор данныхРекламаПродуктМонополияКриптографияАмортизация
Веб-сервер против сервера приложений , Phusion Passenger, Nginx, Rainbows и многие другие. Кажется, что все они подходят под категорию программного обеспечения «развертывание Rails», но между ними есть ключевое различие. Некоторые из них являются «веб-серверами», а другие — «серверами приложений».
Как только вы поймете, что есть что, и где каждая категория соответствует вашей системе, развертывание обретет гораздо больше смысла. Но категории не всегда ясны.
Что такое веб-сервер и чем он отличается от сервера приложений? Можно ли использовать одно без другого? И при чем здесь Rack?
Что такое веб-сервер?
Веб-сервер — это программа, которая принимает запрос на ваш сайт от пользователя и обрабатывает его. Затем он может передать запрос вашему приложению Rails. Nginx и Apache — два больших веб-сервера, с которыми вы столкнетесь.
Если запрос относится к чему-то, что редко меняется, например CSS, JavaScript или изображениям, вашему приложению Rails, вероятно, не нужно это видеть. Веб-сервер может сам обработать запрос, даже не обращаясь к вашему приложению. Обычно так будет быстрее.
Веб-серверымогут обрабатывать запросы SSL, обслуживать статические файлы и активы, сжимать запросы и делать множество других вещей, которые нужны почти каждому веб-сайту. И если ваше приложение Rails нужно ли обрабатывать запрос, веб-сервер передаст его вашему серверу приложений.
Что такое сервер приложений?
Сервер приложений — это то, что фактически запускает ваше приложение Rails. Ваш сервер приложений загружает ваш код и сохраняет ваше приложение в памяти. Когда ваш сервер приложений получает запрос от вашего веб-сервера, он сообщает об этом вашему приложению Rails. После того как ваше приложение обработает запрос, сервер приложений отправляет ответ обратно на веб-сервер (и, в конечном итоге, пользователю).
Большинство серверов приложений можно запускать отдельно, без веб-сервера перед ним. Это, вероятно, то, что вы делаете в режиме разработки! Однако в производственной среде перед вами обычно будет веб-сервер. Он будет обрабатывать несколько приложений одновременно, быстрее отображать ваши ресурсы и выполнять большую часть обработки, которую вы будете выполнять при каждом запросе.
Существует тонн серверов приложений для приложений Rails, включая Mongrel (который больше не используется), Unicorn, Thin, Rainbows и Puma. Каждый из них имеет разные преимущества и разные философии. Но, в конце концов, все они выполняют одно и то же — поддерживают работу вашего приложения Rails и обрабатывают запросы.
Что насчет пассажира?
Phusion Passenger немного уникален. В «автономном режиме» он может работать как сервер приложений. Но его также можно встроить прямо в веб-сервер, так что вам не нужен отдельный сервер приложений для запуска ваших приложений Rails.
Это может быть очень удобно. Особенно, если вы планируете запускать несколько приложений и не хотите тратить время на настройку сервера приложений для каждого из них. После установки Passenger вы просто указываете веб-сервер прямо на свое приложение Rails (вместо сервера приложений), и ваше приложение Rails начнет обрабатывать запросы!
Passenger — неплохой вариант, но наличие отдельного сервера приложений может быть полезным. Сохранение сервера приложений отдельно дает вам возможность выбрать сервер приложений, который лучше всего соответствует вашим потребностям, и вы можете запускать и масштабировать его самостоятельно. Тем не менее, я собираюсь попробовать это снова, когда в следующий раз буду развертывать новое небольшое приложение. Я надеюсь, что это облегчит развертывание будущих приложений на том же сервере.
Что насчет стойки?
Rack — это волшебство, которое позволяет любому из этих серверов приложений запускать ваше приложение Rails. (Или приложение Sinatra, или приложение Padrino, или…)
Вы можете думать о Rack как об общем языке, на котором говорят веб-фреймворки Ruby (например, Rails) и серверы приложений. Поскольку каждая сторона знает один и тот же язык, это означает, что Rails может общаться с Unicorn, а Unicorn — с Rails, при этом ни Rails, ни Unicorn ничего не знают друг о друге.
Как они связаны?
Итак, как же все это сочетается?
Из этих частей веб-запрос первым попадет на ваш веб-сервер. Если запрос является чем-то, что может обработать Rails, веб-сервер выполнит некоторую обработку запроса и передаст его серверу приложений. Сервер приложений использует Rack для связи с вашим приложением Rails. Когда ваше приложение выполняет запрос, ваше приложение Rails отправляет ответ обратно через сервер приложений и веб-сервер человеку, использующему ваше приложение.
В частности, Nginx может передать запрос в Unicorn. Unicorn отдает запрос Rack, который отдает его маршрутизатору Rails, который отдает его нужному контроллеру. Затем ваш ответ просто возвращается в обратном направлении.
Этот обзор может быть упрощен. Но даже простое знание этих категорий поможет вам поместить программное обеспечение, с которым вы работаете, в правильные ментальные корзины.
После того, как вы поймете, как серверы приложений и веб-серверы сочетаются друг с другом, вам будет намного проще устранять проблемы с серверами, когда они у вас возникнут. Вы будете знать все места, куда можно заглянуть, и то, как они взаимодействуют. И как только появится следующий интересный сервер приложений, вам будет еще проще его заменить!
Если вы хотите узнать больше о том, как Rails взаимодействует с Интернетом, ознакомьтесь с этой статьей: Как работают сеансы Rails.
Проходишь уроки и ничего не узнаешь?
Вы трижды просматривали одно и то же руководство и до сих пор не знаете, как создать настоящее приложение?
В этом бесплатном 7-дневном курсе Rails, , вы узнаете, как запускать собственные приложения Rails, не сдаваясь и не перегружаясь.