Разное

Апач сервер: 404 — Нет такой страницы…

15.07.2021

Содержание

Установка Apache и публикация базы 1С на веб-сервере Apache 2.2

Настройка подключения к 1С через веб-браузер на локальном компьютере (localhost)

В данной публикации рассмотрен полный цикл публикации базы 1С на веб-сервере — от установки веб-сервера до входа пользователя в 1С. В качестве веб-сервера выбран Apache 2.2, а в качестве базы данных 1С — «Управление торговлей 3.0» с поддержкой  тонкого и веб-клиента.
1. Устанавливаем Apache. Качаем с любого источника инсталяцию веб-сервера Apache 2.2 для ОС Windows. Все галочки при установке оставляем по умолчанию как их расставила система. В регистрационной карточке веб сервера пишем localhost. Выберите для установки папку с заведомо полными правами доступа: C:\Users\Public\Apache. Папка Public может называтся «Общие». В Windows 7 — такой путь. Для других версий Windows путь может отличатся. Но суть та же.


2. Запускаем Apache. Запускается веб-сервер просто. После установки в панели устройств появится пиктограммка Apache. Кликните по ней левой кнопкой мыши и нажмите Start (перезапуск и остановка производятся также). Скорее всего веб-сервер не запустится. Самая распространенная ошибка «The requested operation failed«.

 Если такая ошибка возникла, нужно подправить конфигурационный файл веб-сервера httpd.txt. Конфигурационный файл веб-сервера в папке, выбранной для установки Apache. Если вы выбрали для установки место установки из пункта 1 данной инструкции, то файл находится в директории: C:\Users\Public\Apache\conf
Подправьте такие строки в файле httpd.txt
— AllowOverride None, вы должны заменить None на All:
— #LoadModule rewrite_module modules/mod_rewrite.so (нужно раскомментировать эту строку — удалить символ #)


3. Перезагружаем ПК и пробуем запустить сервис. В случае успешного запуска ярлычек  Apache 2.2 должен загорется зеленым цветом.
4. Проверяем работает ли веб-сервер. Заходим в браузер, пишем в адресной строке localhost, жмем ввод. Если веб-сервер работает как надо в браузере появится надпись «IT works»


5. Публикуем базу 1С на веб сервере. В режиме конфигуратор меню Сервис — Публикация базы на веб сервере. Далее указываем все как на картинке. Название базы можно дать другое, если хотите. Путь для публикации можно выбрать любой на компьютере, однако рекомендуем выбрать место для публикации как в пункте первом, чтобы не возникло проблем с правами доступа: C:\Users\Public\webbaseut3


6. Добавляем полные права пользователю LOCAL SERVICE. У веб-сервера Apache есть свой пользователь, с помощью которого он обращается к данным. Для того чтобы системный пользователя веб-сервера мог просматривать и записывать данные в базу 1С ему необходимо дать полные права на папку, в которую опубликована база данных 1С. Имя пользователя Apache — LOCAL SERVICE. Именно ему нужно дать полные права на папку с опубликованной базой 1С. В нашем случае на папку C:\Users\Public\webbaseut3

 
 

7. Перезапустите веб-сервер Apache 2.2.
8. Заходим в 1С через браузер. Для проверки публикации базы 1С и для входа в 1С набираем в адресной строке браузера: http://localhost/DemoTradeUkr2
Результат должен выглядеть следующим образом:


 В данном случае localhost — это наш веб-сервер, а DemoTradeUkr2 — имя нашей опубликованной базы данных, который мы задали в 1С при публикации базы.

Настройка подключения к 1С для внешних пользователей через Интернет-соединение

 После того как нам удалось запустить 1С локально, можем пробовать настроить 1С с доступом через Интернет. То есть, настроить так, чтобы пользователь с любой точки земли мог работать в 1С просто введя адрес в браузер.

Необходимые условия для организации доступа к 1С через Интернет

1. Веб-сервер установлен, база 1С опубликована. Обращаем ваше внимание на то что веб-сервер и база 1С должны быть расположены на одном компьютере. Если вы добились запуска 1С через localhost, значит праввильно настроили веб-сервер и браузер и можете приступать к настройке внешнего доступа к базе 1С через Инттернет.
2. Статичиский (или еще называют белый, публичниый) IP адрес. IP адрес можно узнать в личном кабинете у провайдера Интернет, либо зайти в настройки роутера и посмотреть его там. Именно внешний  IP адрес и открытый (проброшеный) порт будут прописыватся в адресной строке браузера для доступа к 1С.
3. Открытый порт. С этим может возникнуть трудность, если вы не системный администратор или никогда не проделывали такую процедуру. Без особых тонкостей вопроса мы кратко опишем как в два шага пробросить порт для 1С-ки. Открытый порт необходим для подключения внешних пользователей по IP к вашему компьютеру. Еще эту процедуру называют проброской портов. На примере роутера TP-Link 740N мы покажем как открыть порт и подготовить компьютер к удаленному доступу. Операция выполняется следующим образом:
а) необходимо зарезервировать для подключения IP адрес.


б) необходимо добавить порт, через который будет идти подключение.


 Напоследок добавим, что к 1С смогут подключится столько пользователей сколько у вас ключей и какую нагрузку способен выдержать ваш компьютер (сервер). Обращаем ваше внимание, что хотя мы резервировали внутренний IP-адрес 192.168.0.11 (ваш внутренний адрес скорее всего будет другой, а какой он можете узнать в диспетчере роутера) доступ к базе 1С не с вашего компьютера (с другого ПК подключенного к интернету) осуществляется по внешнему IP-адресу (статическому IP). Ваш внутренний адрес используется для запуска 1С только на вашем компьютере.

После всех проделанных настроек вы должны ввести адрес базы в своем браузере: http://192.168.0.11/webtest и 1С должна запустится. Результат будет выглядеть сдедующим образом:


К информационной базе, опубликованной через веб-сервер можно подключится через приложение 1С Предприятие. Т.е. мы хотим сказать, что удаленно работать с базой можно не только через интернет-браузер а и через платформу 1С. Для этого в список информационных баз нужно добавить новое подключение. При добавлении информационной базы нужно указать, что подключение будет произведено через веб-сервер. Далее нужно указать адрес информационной базы и в принципе все готово. Таким образом база опубликованная на веб сервере дает возможность работать удаленно как на ПК через платформу, так и на любом другом устройстве через браузер (планшет, телефон).

Можно поступить еще проще, если настраивать публикацию не на домашнем или рабочем компьютере, а на готовом виртуальном сервере, который уже доступен в сети по IP-адресу, на котором не нужно настраивать роутер, думать о бесперебойном источнике интернет и электропитания. Стоимость аренды сервера может быть не так высока, как думают некоторые. Например для 3-5 пользователей достаточно будет среднемощной машины с 5 Гб ОЗУ. Примерная стоимость аренды такого оборудования 30 — 40 у. е. в месяц. Если вас интересует стоимость аренды виртуального сервера, вы можете ознакомится с нашими предложениями в разделе аренда сервера для 1С. По желанию клиента может быть собран сервер индивидуальной конфигурации под задачи. 

20 настроек Apache для ускорения работы сайта » Администрирование серверов

 Apache  – это ПО, которое настраивается без особого труда и имеет множество полезных функций. Конфигурация сервера ِِApache включает в себя качественное распределение вычислительных ресурсов и деактивацию неиспользуемых настроек. Она проводится несложно, при грамотном использовании шагов из нашего руководства. Если все сделать правильно, то можно произвести отличную настройку Apache под высокие нагрузки.

Эффективное применение основных конфигураций Аpache сервера

Сегодня мы рассмотрим список действий, которые помогут вам максимально оптимизировать производительность Apache.

  1. Удалите неиспользуемые модули

Экономьте память, загружайте исключительно нужные вам модули в зависимости от используемого языка программирования: mod_php, mod_ruby, mod_perl и т. д.

  1. Используйте mod_disk_cache, а не mod_mem_cache

mod_mem_cache не будет использовать кэш между различными процессами apache, что приводит к огромному использованию памяти при небольшом приросте в производительности.

  1. Настройте кэширования Apache

Настройте mod_disk_cache. Убедитесь, что вы используете CacheDirLength = 2 и CacheDirLevels = 1, чтобы htcacheclean не занимал огромное количество времени при очистке каталога кэша.

  1. Установите соответствующие заголовки Expires, Etag и Cache-Control.

Чтобы качественно использовать ваш кэш, вы должны указать, когда истекает срок определенного файла, иначе ваш клиент не получит преимущества кэширования.

  1. Поместите кэш на отдельный диск

Поместите кэш на отдельный физический диск для быстрого доступа без замедления других процессов.

  1. Используйте Piped Logging вместо прямой регистрации

Использования Piped Lоgging приведет к значительному приросту скорости работы сайта для ваших пользователей, также он не будет подвисать. Особенно ценно, если вы используете Passenger.

  1. Используйте разные диски

Поместите свои журналы в отдельные разделы, это неплохо оптимизирует работу Apache.

  1. Используйте mod_gzip / mod_deflate

Gzip архивирует ваш контент перед отправкой, а затем пользователь разархивирует его уже при получении. С помощью такой настройки можно быстрее передавать файлы и данный шаг, зачастую, является очень эффективным.

  1. Используйте постоянные соединения

Установите KeepAlive, а также KeepAliveTimeout и KeepAliveRequests. KeepAlive сокращает использование ресурса сервера, что замечательно оптимизирует Аpache 2.

  1. Отключите .htaccess

Это предотвратит необходимость проверять данный файл  при каждом запросе.

  1. Разрешите символические ссылки

Используйте опции + FollowSymLinks -SymLinksIfOwnerMatch. В противном случае Аpache будет выполнять отдельный вызов для каждого имени файла, чтобы убедиться, что это не символическая ссылка.

  1. Отключите ExtendedStatus

ExtendedStatus будет генерировать несколько системных вызовов для каждого запроса для сбора статистики. Лучше использовать его в определенный период сравнения статистики, а после – выключить.

  1. Используйте определенный DirectoryIndex

То есть index.html или index.php, а не просто index.

Учитывайте особенности настройки операционных систем

  1. Увеличьте Swappiness

На хостингах с одним сайтом это повысит производительность. В системах Linux увеличьте / proc / sys / vm / swappiness по крайней мере до 60, если не больше. Это поможет загрузить как можно больше файлов в кэш для более быстрого доступа.

  1. Увеличьте размер буфера записи

Увеличьте размер буфера записи для tcp / ip. В системах linux увеличьте / proc / sys / net / core / wmem_max и / proc / sys / net / core / wmem_default. Если ваши страницы помещаются в этот буфер, Apache завершит процесс за один вызов буфера tcp / ip.

  1. Увеличьте максимальное количество открытых файлов

Если вы работаете с большими нагрузками, увеличьте количество разрешенных открытых файлов. В Linux увеличьте / proc / sys / fs / file-max и запустите ulimit -H -n 4096.

Особенности настройки Apache сервера при использовании разных языков программирования

  1. Настройте внешний прокси-сервер для изображений и таблиц

Пусть ваши основные веб-сервера обрабатывают основную часть данных, в то время как изображения и таблицы обрабатываются на веб-серверах для внешнего интерфейса.

  1. Используйте mod_passenger для Rails

mod_passenger может распределять память и ресурсы между несколькими процессами.

Он также будет отслеживать эти процессы и удалять их при ненадобности оптимизируя работу вашего продукта.

  1. Отключите safe_mode для PHP

Он использует 50-70% времени загрузки скрипта для проверки безопасных директив. Вместо этого настройте open_base_dir правильно и используйте плагины, к примеру, mod_itk.

  1. Используйте настройку кэширования Аpache для часто используемых данных

memcached отлично подходит для часто используемых данных и сессий. Этот шаг существенно увеличит скорость работы.

Если же вы хотите позаботиться о безопасности вашего сервера и сайта, а также грамотно настроить его с учетом всех деталей оптимизации, то лучше всего доверить это профессионалам из System-admins. Наши высококвалифицированные специалисты предоставят вам лучшие услуги на рынке за адекватную цену.

 

Apache — wiki студи Клондайк

Apache — свободный HTTP веб-сервер, названый в честь группы племён североамериканских индейцев апачей. Также является сокращением от англ. a patchy server. Среди русскоязычных пользователей общепринято искажённое апач.

Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

Главные достоинства веб-сервера Apache — надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6.

Архитектура веб-сервера

Название элемента: Описание:
Ядро

Функциональные возможности:

  • обработка конфигурационных файлов,
  • протокол HTTP,
  • система загрузки модулей.

Разрабатывается Apache Software Foundation.

Написана на языке программирования C.

Система конфигураций Основана на текстовых конфигурационных файлах.

Уровни конфигурации:

  • Конфигурация сервера (http.conf).
  • Конфигурация виртуального хоста (httpd.conf c версии 2.2, extra/httpd-vhosts.conf).
  • Конфигурация уровня директории (.htaccess).

Мультипроцессорные модули Основные модели симметричной мультипроцессорности:
  • worker (Linux, FreeBSD) для средне загруженных серверов.
  • pre-fork (Linux, FreeBSD) обеспечивает безопасность и стабильность за счёт изоляции процессов друг от друга, сохранение совместимости со старыми библиотеками, не поддерживающими threads.
  • perchild (Linux) для высоко нагруженных серверов, дает возможность запуска дочерних процессов используя другое имя пользователя для повышения безопасности.
  • netware (Novell, Netware) для серверов Novell Netware.
  • winnt (Miscosoft Windows) для серверов под управлением Microsoft Windows.
  • Apache-ITK (Linux, FreeBSD) для хостинговых серверов, серверов, критичных к изоляции пользователей и учёту ресурсов.
  • peruser (Linux, FreeBSD) обеспечивает повышенную безопасность, работу с библиотеками, не поддерживающими threads.
Система модулей В модулях реализуется:
  • Поддержка языков программирования
  • Добавление функций
  • Исправление ошибок или модификация основных функций
  • Усиление безопасности
Механизм виртуальных хостов

Позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имен), отображая для каждого из них собственное содержимое.

Функциональные возможности Apache

Интеграция с другим ПО и языками программирования.

Существует множество модулей, добавляющих к Apache поддержку различных языков программирования и систем разработки.

К ним относятся:

  • PHP (mod_php).
  • Python (mod python, mod wsgi).
  • Ruby (apache-ruby).
  • Perl (mod perl).
  • ASP (apache-asp).
  • Tcl (rivet).

Кроме того, Apache поддерживает механизмы CGI и FastCGI, что позволяет исполнять программы на практически всех языках программирования, в том числе C, C++, Lua, sh, Java.

Тюнинг сервера Apache — Highload.today

Этот текст написан несколько лет назад и может содержать неточности

Apache — самый популярный Web сервер. Настройка некоторых параметров (тюнинг) может дать существенный прирост в скорости его работы.

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

Настройка Apache проводится в конфигурационном файле. Его можно найти:

Debian

/etc/apache2/apache2.conf

Freebsd

/usr/local/etc/apache22/httpd. conf

Модули

Отключайте модули, которые Вам не нужны. Это сэкономит множество ресурсов на обработке запросов. Модули Apache обычно поставляются как плагины (DSO), поэтому их включение и отключение делается просто через конфигурационный файл.

Обычно Вам не нужно ничего, кроме таких модули:

mod_alias
mod_authz_host
mod_deflate
mod_dir
mod_expires
mod_headers
mod_mime
mod_rewrite
mod_log_config
mod_autoindex
mod_negotiation
mod_setenvif

MPM

MPM позволяет выбрать метод обработки параллельных запросов. Оптимальный вариант — Worker — поточный MPM. В нем каждый запрос обслуживается в отдельном потоке одного из дочерних процессов. Потоки — более легкие для ОС объекты, чем процессы. Следовательно, в этом случае производительность повышается.

Для включения Worker MPM, нужно открыть файл

nano /etc/sysconfig/httpd

и убрать комментарий со строки

HTTPD=/usr/sbin/httpd. worker

Перезапустим Apache

/etc/init.d/apache2 restart

AllowOverride и .htaccess

Директива AllowOverride включайте использование файла .htaccess. В этом случае при каждом запросе Apache будет искать этот файл в запрашиваемых директориях. Перемещайте всю конфигурацию в файлы виртуальных хостов (папка /etc/apache2/sites-enabled/ для Debian) и отключите использование htaccess:

AllowOverride None

MaxClients

Директива MaxClients устанавливает максимальное количество параллельных запросов, которые будет обрабатывать сервер. Эту настройку нужно адаптировать с течением времени, работайте в пределах значений в 128…4096:

MaxClients 256

Если сервер уже обслуживает MaxClients запросов, новые запросы попадут в очередь, размер которой устанавливается с помощью директивы ListenBacklog.

MinSpareServers, MaxSpareServers, и StartServers

Эти директивы позволяют заранее иметь в памяти созданные процессы, чтобы не приходилось этого делать во время получения запроса. Они устанавливаются только для prefork mpm.

StartServers 3

# При запуска Apache будет создавать 3 процесса

MinSpareServers 3

# Apache не будет убивать свободные процессы, если их остается менее трех

MaxSpareServers 5

# Максимум 5 свободных процессов, остальные будут уничтожаться

MaxRequestsPerChild

Директива MaxRequestsPerChild устанавливает сколько запросов может обработать один дочерний процесс/поток прежде чем он будет завершен. По умолчанию значение этой директивы установлено в 0, что означает что однажды созданный процесс/поток не будет завершен никогда. Этот параметр позволяет избавиться от проблем с утечкой памяти, поэтому лучше установить его:

MaxRequestsPerChild 4096

# После 4096 обработанных запросов процесс будет перезапущен

KeepAlive

KeepAlive запросы позволяют устанавливать постоянные соединения между клиентом и сервером. Это экономит ресурсы на отсутствии повторной установки соединений. Обязательно включайте эту опцию.

KeepAlive On
KeepAliveTimeout 30

#Включаем KeepAlive и устанавливаем время ожидания перед закрытием соединения в 30 секунд

Бывают случаи, когда пользователь отправляет только один запрос. Например, download-сервер. Тогда KeepAlive может быть бесполезен и даже вреден, т.к. при включенном KeepAlive сервер закрывает соединение не сразу, а ждет какое-то время (KeepAliveTimeout).

Сжатие

Все современные браузеры поддерживают сжатие. Включение gzip существенно уменьшит размер трафика. Это нужно делать всегда.

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Проверьте, что сжатие заработало с помощью Online Gzip checker.

DNS

Выключайте лишние запросы к DNS в Apache:

HostnameLookups Off

# Так Apache будет записывать в лог IP адрес клиента вместо его хоста.

Всегда используйте IP адрес в директивах Allow From и Deny From, а не доменные имена.

Allow From 1.1.1.1 
Deny From 2.2.2.2

Самое важное

Самым большим эффектом на посетителей окажет включение сжатия gzip. Часто это экономит около 70% трафика.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как установить веб-сервер Apache на Debian 10

Предпосылки

Перед тем, как вы начнете это руководство, на вашем сервере должен быть настроен обычный пользователь без полномочий root с привилегиями sudo. Кроме того, вам нужно будет включить базовый брандмауэр для блокировки несущественных портов. Вы можете узнать, как настроить учетную запись обычного пользователя и настроить брандмауэр для своего сервера, следуя нашей initial настройке сервера. руководство по Debian 10.

Если у вас есть доступная учетная запись, войдите в систему как пользователь без полномочий root, чтобы начать.

Шаг 1 — Установка Apache

Apache доступен в стандартных репозиториях Debian, что позволяет установить его с помощью обычных инструментов управления пакетами.

Давайте начнем с обновления локального индекса пакета, чтобы отразить последние восходящие изменения:

Затем установите пакет + apache2 +:

После подтверждения установки + apt + установит Apache и все необходимые зависимости.

Шаг 2 — Настройка брандмауэра

Перед тестированием Apache необходимо изменить настройки брандмауэра, чтобы разрешить внешний доступ к веб-портам по умолчанию. Предполагая, что вы следовали инструкциям в предварительных условиях, у вас должен быть настроен брандмауэр UFW для ограничения доступа к вашему серверу.

Во время установки Apache регистрируется в UFW, чтобы предоставить несколько профилей приложений, которые можно использовать для включения или отключения доступа к Apache через брандмауэр.

Перечислите профили приложений + ufw +, набрав:

Вы увидите список профилей приложения:

OutputAvailable applications:
 AIM
 Bonjour
 CIFS
. . .
WWW
WWW Cache
WWW Full
WWW Secure
. . .

Профили Apache начинаются с WWW:

  • * WWW *: этот профиль открывает только порт 80 (обычный, незашифрованный веб-трафик)

  • * WWW Cache *: этот профиль открывает только порт 8080 (иногда используется для кэширования и веб-прокси)

  • * WWW Full *: этот профиль открывает порт 80 (обычный, незашифрованный веб-трафик) и порт 443 (зашифрованный трафик TLS / SSL).

  • * WWW Secure *: этот профиль открывает только порт 443 (зашифрованный трафик TLS / SSL)

Рекомендуется включить наиболее ограничивающий профиль, который будет по-прежнему разрешать настроенный вами трафик. Поскольку мы еще не настроили SSL для нашего сервера в этом руководстве, нам нужно будет только разрешить трафик через порт 80:

Вы можете проверить изменение, набрав:

Вы должны увидеть разрешенный HTTP-трафик в отображаемом выводе:

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
WWW                        ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
WWW (v6)                   ALLOW       Anywhere (v6)

Как видите, профиль был активирован, чтобы разрешить доступ к веб-серверу.

Шаг 3 — Проверка вашего веб-сервера

В конце процесса установки Debian 10 запускает Apache. Веб-сервер уже должен быть запущен.

Проверьте систему + systemd + init, чтобы убедиться, что служба работает, набрав:

sudo systemctl status apache2
Output● apache2. service - The Apache HTTP Server
  Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Active: active (running) since Fri 2019-07-19 15:33:01 UTC; 4min 13s ago
    Docs: https://httpd.apache.org/docs/2.4/

. . .

Jul 19 15:33:01 debssh systemd[1]: Starting The Apache HTTP Server...
Jul 19 15:33:01 debssh apachectl[2791]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive global
Jul 19 15:33:01 debssh systemd[1]: Started The Apache HTTP Server.

Как видно из этого вывода, служба, кажется, успешно запущена. Однако лучший способ проверить это — запросить страницу у Apache.

Вы можете получить доступ к целевой странице Apache по умолчанию, чтобы убедиться, что программное обеспечение работает правильно через ваш IP-адрес. Если вы не знаете IP-адрес вашего сервера, вы можете получить его несколькими способами из командной строки.

Попробуйте ввести это в командной строке вашего сервера:

Вы получите обратно несколько адресов, разделенных пробелами. Вы можете попробовать каждый из них в своем веб-браузере, чтобы увидеть, работают ли они.

Альтернативой является использование инструмента + curl +, который должен дать вам ваш публичный IP-адрес, как видно из другого места в Интернете.

Сначала установите + curl с помощью` + apt`:

Затем используйте + curl +, чтобы получить icanhazip.com с использованием IPv4:

Когда у вас есть IP-адрес вашего сервера, введите его в адресную строку браузера:

Вы должны увидеть веб-страницу Apache Debian 10 по умолчанию:

изображение: http: //assets.digitalocean.com/how-to-install-lamp-debian-9/small_apache_default_debian9.png [страница по умолчанию Apache]

Эта страница указывает, что Apache работает правильно. Он также содержит основную информацию о важных файлах Apache и расположении каталогов.

Шаг 4 — Управление процессом Apache

Теперь, когда ваш веб-сервер запущен и работает, давайте рассмотрим некоторые основные команды управления.

Чтобы остановить ваш веб-сервер, введите:

sudo systemctl stop apache2

Чтобы запустить веб-сервер, когда он остановлен, введите:

sudo systemctl start apache2

Чтобы остановить и снова запустить службу, введите:

sudo systemctl restart apache2

Если вы просто вносите изменения в конфигурацию, Apache может часто перезагружаться без разрыва соединений. Для этого используйте эту команду:

sudo systemctl reload apache2

По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если это не то, что вы хотите, отключите это поведение, набрав:

sudo systemctl disable apache2

Чтобы снова включить службу при загрузке, введите:

sudo systemctl enable apache2

Apache теперь должен запускаться автоматически при повторной загрузке сервера.

Шаг 5 — Настройка виртуальных хостов (рекомендуется)

При использовании веб-сервера Apache вы можете использовать virtual hosts (аналогично блокам серверов в Nginx) для инкапсуляции деталей конфигурации и размещения более одного домена на одном сервере. В следующих командах * замените * + your_domain + * на ваше собственное доменное имя *. Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, см. Наш Introduction to DigitalOcean DNS.

В Apache в Debian 10 по умолчанию включен один блок сервера, который настроен для обслуживания документов из каталога + / var / www / html +. Хотя это хорошо работает для одного сайта, он может стать громоздким, если вы размещаете несколько сайтов. Вместо того, чтобы модифицировать + / var / www / html +, давайте создадим структуру каталогов внутри + / var / www + для нашего сайта + your_domain +, оставив + / var / www / html + в качестве каталога по умолчанию обслуживаться, если запрос клиента не совпадает ни с одним другим сайтом.

Создайте каталог для + your_domain + следующим образом, используя флаг + -p + для создания любых необходимых родительских каталогов:

Затем назначьте владельца каталога с помощью переменной среды + $ USER +:

sudo chown -R $USER:$USER /var/www/

Права доступа к вашим веб-корням должны быть правильными, если вы не изменили значение + unmask +, но вы можете убедиться, набрав:

sudo chmod -R 755 /var/www/

Затем создайте пример страницы + index.html, используя` + nano + `или ваш любимый редактор:

nano /var/www//index.html

Внутри добавьте следующий пример HTML:

/var/www/your_domain/index.html

<html>
   <head>
       <title>Welcome to !</title>
   </head>
   <body>
       <h2>Success!  The  virtual host is working!</h2>
   </body>
</html>

Сохраните и закройте файл, когда вы закончите.

Чтобы Apache обслуживал этот контент, необходимо создать файл виртуального хоста с правильными директивами. Вместо того, чтобы изменять файл конфигурации по умолчанию, расположенный в + / etc / apache2 / sites-available / 000-default.conf + напрямую, давайте создадим новый файл в + / etc / apache2 / sites-available / .conf +:

sudo nano /etc/apache2/sites-available/.conf

Вставьте следующий блок конфигурации, который похож на стандартный, но обновлен для нашего нового каталога и имени домена:

/etc/apache2/sites-available/your_domain.conf

<VirtualHost *:80>
   ServerAdmin
   ServerName
   ServerAlias
   DocumentRoot /var/www/
   ErrorLog ${APACHE_LOG_DIR}/error.log
   CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Обратите внимание, что мы обновили + DocumentRoot + для нашего нового каталога, а + ServerAdmin + — для электронной почты, к которой администратор сайта + your_domain + может получить доступ. Мы также добавили две директивы: + ServerName +, которая устанавливает базовый домен, который должен соответствовать этому определению виртуального хоста, и + ServerAlias ​​+, который определяет другие имена, которые должны совпадать, как если бы они были базовым именем.

Сохраните и закройте файл, когда вы закончите.

Давайте включим файл с помощью инструмента + a2ensite +:

Отключите сайт по умолчанию, определенный в + 000-default.conf +:

sudo a2dissite 000-default.conf

Далее давайте проверим ошибки конфигурации:

sudo apache2ctl configtest

Вы должны увидеть следующий вывод:

OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Перезапустите Apache, чтобы внести изменения:

sudo systemctl restart apache2

Apache должен теперь обслуживать ваше доменное имя. Вы можете проверить это, перейдя к + http: // +, где вы должны увидеть что-то вроде этого:

изображение: https: //assets.digitalocean.com/articles/apache_virt_hosts_1404/example.png [пример виртуального хоста Apache]

Заключение

Теперь, когда у вас установлен веб-сервер, у вас есть много вариантов для типа контента, который вы можете обслуживать, и технологий, которые вы можете использовать для создания более насыщенного опыта.

It works!» после смены IP сервера Apache | html

После того, как хостер перенес сервер с сайтами Joomla на новую площадку, и были прописаны зоны доменов в DNS на новый IP, сервер Apache начал выдавать вместо главной страницы сайта сообщение «It works!».

Если Вы видите такое сообщение, то оно означает, что Apache работает, но он не знает, что отображать в ответ на запрос пользователя. В данном примере пользователь ввел абсолютный IP (178. 63.170.153), но на сервере было прописано несколько виртуальных хостов, и сервер не знал, что именно (какой из сайтов) ему отобразить. Вот поэтому сервер Apache и вывел сообщение «It works!» (я работаю, но что все-таки от меня Вам надо?..).

Другими словами, если Вы видите сообщение «It works!», значит что-то не так с конфигурацией сервера Apache.

В моем случае, когда сервер поменял свой IP, причина сообщения It works! была также в неправильно заданной конфигурации сервера. На сервере было прописано несколько виртуальных хостов, и в описании каждого был указан старый фиксированный IP. На самом деле надо было вместо фиксированного IP указать звездочку. Пример неправильно заданной конфигурации (в этом примере абсолютный адрес IP хоста a.b.c.d, и настроено два сайта, два виртуальных хоста mydomain1.net и mydomain2.net):

NameVirtualHost a.b.c.d:80
< VirtualHost a.b.c.d:80 >
        ServerName mydomain1. net
        DocumentRoot /var/www/user1/data/www/mydomain1.net
        SuexecUserGroup usergroup usergroup
        CustomLog /var/www/httpd-logs/mydomain1.net.access.log combined
        ErrorLog /var/www/httpd-logs/mydomain1.net.error.log
        ServerAlias www.mydomain1.net
        ServerAdmin [email protected]
        ScriptAlias /php-bin/ /var/www/user1/data/php-bin/
        ScriptAlias /cgi-bin/ /var/www/user1/data/www/mydomain1.net/cgi-bin/
        AddHandler php-cgi .php .php3 .php4 .php5 .phtml
< /VirtualHost >
< VirtualHost a.b.c.d:80 >
        ServerName mydomain2.net
        DocumentRoot /var/www/user2/data/www/mydomain2.net
        SuexecUserGroup usergroup usergroup
        CustomLog /var/www/httpd-logs/mydomain2.net.access.log combined
        ErrorLog /var/www/httpd-logs/mydomain2.net.error.log
        ServerAlias www.mydomain2.net
        ServerAdmin [email protected] net
        ScriptAlias /php-bin/ /var/www/user2/data/php-bin/
        ScriptAlias /cgi-bin/ /var/www/user2/data/www/mydomain2.net/cgi-bin/
        AddHandler php-cgi .php .php3 .php4 .php5 .phtml
< /VirtualHost >

Чтобы устранить привязку к абсолютному IP сервера (при этом автоматически пропадет сообщение «It works!» после смены IP сервера), нужно всего лишь заменить абсолютный IP адрес на звездочку:

NameVirtualHost *:80
< VirtualHost *:80 >
        ServerName mydomain1.net
        DocumentRoot /var/www/user1/data/www/mydomain1.net
        SuexecUserGroup usergroup usergroup
        CustomLog /var/www/httpd-logs/mydomain1.net.access.log combined
        ErrorLog /var/www/httpd-logs/mydomain1.net.error.log
        ServerAlias www.mydomain1.net
        ServerAdmin [email protected]
        ScriptAlias /php-bin/ /var/www/user1/data/php-bin/
        ScriptAlias /cgi-bin/ /var/www/user1/data/www/mydomain1. net/cgi-bin/
        AddHandler php-cgi .php .php3 .php4 .php5 .phtml
< /VirtualHost >
< VirtualHost *:80 >
        ServerName mydomain2.net
        DocumentRoot /var/www/user2/data/www/mydomain2.net
        SuexecUserGroup usergroup usergroup
        CustomLog /var/www/httpd-logs/mydomain2.net.access.log combined
        ErrorLog /var/www/httpd-logs/mydomain2.net.error.log
        ServerAlias www.mydomain2.net
        ServerAdmin [email protected]
        ScriptAlias /php-bin/ /var/www/user2/data/php-bin/
        ScriptAlias /cgi-bin/ /var/www/user2/data/www/mydomain2.net/cgi-bin/
        AddHandler php-cgi .php .php3 .php4 .php5 .phtml
< /VirtualHost >

 

Сравнение веб-серверов Apache и IIS

Сравнение веб-серверов Apache и IIS

Споры о выборе Apache или IIS являются столь же давними, как и споры о выборе ОС — Linux или Windows. В нашей компании спор решился просто — наше готовое решение «интернет-шлюз Debian CBS» поддерживает оба веб-сервера. И поскольку они являются наиболее широко использованными приложениями для веб-серверов на рынке, то сделать выбор действительно трудно. Если Вы еще думаете, какое программное обеспечение должно работать на Вашем сервере, рассуждения в этой статье должны Вам помочь сделать более взвешенное решение.

Apache

Сервер Apache является приложением веб-сервера с открытым исходным кодом, разработанным Apache Software Foundation. Программное обеспечение сервера свободно распространяется и данная лицензия с открытым исходным кодом означает, что пользователи могут отредактировать базовый код, чтобы настроить производительность и способствовать разработке программы.

Хоть Apache и будет работать на любой операционной системе, его намного чаще используют в комбинации с операционной системой Linux, которая также распространяется с открытым исходным кодом. Эти два компонента, объединенные с MySQL, базой данных PHP и языком сценариев, образуют популярное решение для веб-сервера под названием LAMP (комплекс серверного программного обеспечения).

Основные преимущества Apache и серверных систем LAMP:

  • низкие затраты, так как нет необходимости приобретать лицензии на программное обеспечение;
  • гибкое программирование из-за открытого исходного кода;
  • улучшенная безопасность, так как Apache был разработан для операционной системы не-Windows (а большинство вредоносных программ написано под ОС от Microsoft), то он всегда имел репутацию более безопасной системы, чем IIS производства Microsoft.
Internet Information Services (IIS)

IIS от Microsoft — второе по популярности программное обеспечение для веб-сервера. Он состоит из серии служб, включая протокол передачи файлов (FTP), протокол передачи гипертекста (HTTP), простой протокол передачи почты (SMTP) и другие, которые позволяют системе Windows управлять веб-сайтами. Последняя версия также включает различные модули для безопасности, кэширования, журналирования, сжатия и диагностики.

Поскольку IIS работает только с ОС Windows, то выбор IIS подразумевает под собой и выбор Windows Server, что, несомненно, увеличивает эксплуатационные расходы. Плюс Windows подвержен большему количеству вредоносных атак на программное обеспечение и имеет репутацию менее защищенного сервера, чем Apache.

Есть поводы для волнения по производительности IIS при использовании PHP по сравнению с Apache. До недавнего времени, были два способа выполнить PHP в среде Windows: это медленный путь с CGI и ненадежный путь с ISAPI. Поскольку много сценариев PHP записаны для Apache и Linux, то их выполнение на платформе Windows с ISAPI может заставить их нарушать и разделять процессы в IIS при взаимодействие с приложениями. Но в последнее время улучшение было достигнуто через FastCGI, с функцией, которая позволяет веб-серверу IIS осуществить быстрый и надежный хостинг PHP.

Итак, почему бы Вы могли выбрать связку Windows/IIS, а не систему LAMP?

  • Windows и IIS поддерживаются корпорацией Microsoft, тогда как Apache поддерживается только пользовательским сообществом;
  • IIS поддерживает платформу.NET Microsoft и сценарии ASPX.
  • модули позволяют включить потоковую передачу аудио и видеоконтента.
Итог сравнения:
  1. Если стоимость лицензий для Вас является главным критерием, то комбинация LAMP будет намного дешевле, поскольку нет никаких затрат на лицензирования.
  2. Если важна безопасность, то Apache известен как более безопасный веб-сервер.
  3. Если Вы используете любую ОС, кроме операционной системы Windows на Ваших серверах, то Вы не в состоянии использовать IIS.
  4. Однако, если Вам нужно выполнить сценарий, который полагается только на ASPX или Вы предпочитаете более удобные для пользователя средства администрирования, то Вам нужна связка IIS на платформе Windows.
Приложение. Сравнение кода (мнение программистов)

Все программисты знакомы с фразой «запутанный код«. Данный термин используют в таких ситуациях, когда функциональность (здесь число строк кода и вызовов функции) растет бездумно, что и отражается на простоте. Сложность кода — ярый враг безопасности и устойчивости системы в целом, когда дело доходит до разработки программного обеспечения.

Следующие изображения наглядно демонстрируют пример запутанного кода. Они явно демонстрируют, почему большинство проектов Web 2.0 используют именно систему LAMP с открытым исходным кодом (связка Linux+Apache+Php/MySQL).

Эта схема внутренних системных вызовов Apache показывает четкую организацию и понятность. Это аккуратно, это опрятно и это компактно. Это отличный пример того, как должна смотреться схема системных вызовов.

Далее схема у IIS. Выглядит очень запутанно. Те, кто вынужден управлять данным получающим web-сервером, должны действительно постараться, чтобы все было согласованно и работоспособно.

20 способов защитить вашу конфигурацию Apache

Вот 20 вещей, которые вы можете сделать, чтобы сделать вашу конфигурацию apache более безопасной.

Заявление об ограничении ответственности: главное в безопасности заключается в том, что здесь нет никаких гарантий или абсолютных требований. Эти предложения должны сделать ваш сервер немного более жестким, но не думайте, что ваш сервер обязательно будет безопасным после выполнения этих предложений.

Кроме того, некоторые из этих предложений могут снизить производительность или вызвать проблемы в вашей среде.Вам решать, не совместимы ли какие-либо из предлагаемых мною изменений с вашими требованиями. Другими словами, действуйте на свой страх и риск.

Во-первых, убедитесь, что вы установили последние исправления безопасности

Нет смысла ставить замки на окна, если у вас дверь распахнута настежь. Таким образом, если вы не исправлены, нет особого смысла продолжать дальше в этом списке. Идите вперед и добавьте эту страницу в закладки , чтобы вы могли вернуться позже и исправить свой сервер.

Вам понадобится способ узнать, когда будут опубликованы новые уязвимости сервера Apache. Мне нравится использовать stack.watch, чтобы уведомлять меня, когда публикуются новые уязвимости сервера Apache httpd. Эта служба бесплатна и будет отправлять вам электронное письмо при обнаружении новых уязвимостей.

Скрыть номер версии Apache и другую конфиденциальную информацию.

По умолчанию многие установки Apache сообщают миру, какую версию Apache вы используете, какую операционную систему / версию вы используете и даже какие модули Apache установлены на сервере.Злоумышленники могут использовать эту информацию в своих интересах при проведении атаки. Он также отправляет сообщение о том, что вы оставили без изменений большинство значений по умолчанию.

Есть две директивы, которые вам нужно добавить или отредактировать в файле httpd.conf :

Сервер Подпись Выкл. 
ServerTokens Prod
 

ServerSignature отображается внизу страниц, созданных apache, таких как страницы 404, списки каталогов и т. Д.

Директива ServerTokens используется для определения того, что Apache будет помещать в заголовок HTTP-ответа Server .Установив для него значение Prod , он устанавливает заголовок ответа HTTP следующим образом:

 Сервер: Apache 

Если вы суперпараноик, вы можете изменить это на что-то другое, кроме «Apache», отредактировав исходный код или используя mod_security (см. Ниже).

Убедитесь, что apache работает под собственной учетной записью пользователя и группой

В нескольких установках apache он запускается от имени пользователя никто . Итак, предположим, что и Apache, и ваш почтовый сервер были запущены как никто атака через Apache может привести к компрометации почтового сервера, и наоборот.

Пользовательский apache
Групповой apache
 

Убедитесь, что файлы вне корневого веб-сайта не обслуживаются

Мы не хотим, чтобы apache мог получить доступ к файлам вне своего веб-корня. Предполагая, что все ваши веб-сайты размещены в одном каталоге (мы назовем его / web ), вы должны настроить его следующим образом:

<Каталог />
  Заказ запретить, разрешить
  Запретить всем
  Опции Нет
  AllowOverride Нет

<Каталог / Интернет>
  Заказать разрешить, запретить
  Разрешить от всех

 
Обратите внимание, что, поскольку мы установили Options None и AllowOverride None , это отключит все параметры и переопределения для сервера.Теперь вам нужно явно добавить их для каждого каталога, для которого требуется параметр или переопределение.

Отключить просмотр каталогов

Это можно сделать с помощью директивы Options внутри тега Directory . Установите Options на None или -Indexes

Опции
 -Индексы 

Отключение на стороне сервера включает

Это также делается с помощью директивы Options внутри тега Directory . Установите для параметров значение Нет или -включает

Опции
 - Включает 

Отключить выполнение CGI

Если вы не используете CGI, отключите его с помощью директивы Options внутри тега Directory . Установите для параметров значение Нет или -ExecCGI

 Опции -ExecCGI 

Не разрешать apache переходить по символическим ссылкам

Это снова можно сделать с помощью директивы Options внутри тега Directory .Установите Options на None или -FollowSymLinks

Опции
 -FollowSymLinks 

Отключение нескольких опций

Если вы хотите отключить все опции , просто введите:

 Опции Нет 

Если вы хотите отключить каждую отдельную опцию с пробелом в директиве Options :

Параметры
 -ExecCGI -FollowSymLinks -Indexes 

Отключить поддержку файлов .

htaccess

Это делается в теге Directory , но с помощью директивы AllowOverride .\ .ht «> Заказать разрешить, запретить Запретить всем Удовлетворить всех

Запустить mod_security

mod_security — это очень удобный модуль Apache, написанный Иваном Ристичем, автором Apache Security из O’Reilly press.

С помощью mod_security вы можете делать следующее:

  • Простая фильтрация
  • Фильтрация на основе регулярных выражений
  • Проверка кодировки URL
  • Проверка кодировки Unicode
  • Аудит
  • Предотвращение атаки нулевым байтом
  • Пределы загружаемой памяти
  • Маскировка идентичности сервера
  • Встроенная поддержка Chroot
  • и др.

Отключить ненужные модули

Apache обычно поставляется с несколькими установленными модулями.Просмотрите документацию по модулю apache и узнайте, что на самом деле делает каждый активированный вами модуль. Много раз вы обнаружите, что вам не нужно включать указанный модуль.

Найдите в вашем httpd.conf строки, содержащие LoadModule . Чтобы отключить модуль, вы обычно можете просто добавить # в начало строки. Для поиска модулей введите:

 grep LoadModule httpd.conf 

Вот некоторые модули, которые обычно включены, но часто не нужны: mod_imap , mod_include , mod_info , mod_userdir , mod_status , mod_cgi , mod_autoindex .

Убедитесь, что только root имеет доступ для чтения к конфигурации и двоичным файлам apache

Это можно сделать, если ваша установка apache находится по адресу / usr / local / apache следующим образом:

chown -R корень: корень / usr / local / apache
chmod -R o-rwx / usr / локальный / apache
 

Уменьшите значение тайм-аута

По умолчанию директива Timeout установлена ​​на 300 секунд. Вы можете уменьшить, чтобы смягчить потенциальные последствия атаки отказа в обслуживании.

 Тайм-аут 45 

Ограничение больших запросов

Apache имеет несколько директив, которые позволяют ограничивать размер запроса, это также может быть полезно для смягчения последствий атаки отказа в обслуживании.

Хорошим местом для начала является директива LimitRequestBody . По умолчанию для этой директивы установлено значение unlimited. Если вы разрешаете загрузку файлов размером не более 1 МБ, вы можете установить для этого параметра примерно следующее:

 LimitRequestBody 1048576 

Если вы не разрешаете загрузку файлов, вы можете установить еще меньше.

Некоторые другие директивы, на которые стоит обратить внимание: LimitRequestFields , LimitRequestFieldSize и LimitRequestLine . Эти директивы установлены на разумные значения по умолчанию для большинства серверов, но вы можете настроить их в соответствии со своими потребностями. См. Документацию для получения дополнительной информации.

Ограничение размера тела XML

Если вы используете mod_dav (обычно используется с Subversion), вы можете ограничить максимальный размер тела XML-запроса.Директива LimitXMLRequestBody доступна только в Apache 2, и ее значение по умолчанию составляет 1 миллион байт (приблизительно 1 МБ). Во многих учебных пособиях вы устанавливаете это значение на 0, что означает, что могут быть загружены файлы любого размера, что может быть необходимо, если вы используете WebDAV для загрузки больших файлов, но если вы просто используете его для управления версиями, вы, вероятно, можете уйти с установкой верхней границы, например 10 МБ:

 LimitXMLRequestBody 10485760 

Ограничение параллелизма

Apache имеет несколько параметров конфигурации, которые можно использовать для настройки обработки одновременных запросов. MaxClients — это максимальное количество дочерних процессов, которые будут созданы для обслуживания запросов. Это может быть установлено слишком большим, если вашему серверу не хватает памяти для обработки большого количества одновременных запросов.

Другие директивы, такие как MaxSpareServers , MaxRequestsPerChild и на Apache2 ThreadsPerChild , ServerLimit и MaxSpareThreads , важно настроить в соответствии с вашей операционной системой и оборудованием.

Ограничение доступа по IP

Если у вас есть ресурс, доступ к которому должен осуществляться только через определенную сеть или IP-адрес, вы можете принудительно применить это в своей конфигурации apache. Например, если вы хотите ограничить доступ к своей интрасети, чтобы разрешить только сеть 176.16:

Заказ запретить, разрешить
Запретить всем
Разрешить от 176.16.0.0/16

 

Или по IP:

Заказ запретить, разрешить
Запретить всем
Разрешить с 127.0.0.1
 

Регулировка настроек KeepAlive

Согласно документации Apache, использование HTTP Keep Alive может повысить производительность клиента на целых 50%, поэтому будьте осторожны перед изменением этих настроек, вы будете жертвовать производительностью ради небольшого отказа в обслуживании.

KeepAlive включены по умолчанию, и вы должны оставить их включенными, но вы можете подумать об изменении MaxKeepAliveRequests , который по умолчанию равен 100 , и KeepAliveTimeout , который по умолчанию равен 15 . Проанализируйте файлы журнала, чтобы определить подходящие значения.

Запуск Apache в среде Chroot

chroot позволяет запускать программу в собственной изолированной jail . Это предотвращает возможность взлома одной службы повлиять на что-либо еще на сервере.

Это может быть довольно сложно настроить с помощью chroot из-за зависимостей библиотек. Выше я упоминал, что модуль mod_security имеет встроенную поддержку chroot. Это делает процесс таким же простым, как добавление директивы mod_security в вашу конфигурацию:

 SecChrootDir / chroot / apache 

Однако есть некоторые предостережения, поэтому ознакомьтесь с документацией mod_security для получения дополнительной информации.

Благодарности

Я обнаружил, что книга «Безопасность Apache» является очень ценным ресурсом для защиты веб-сервера Apache.Некоторые из перечисленных выше предложений были вдохновлены этой книгой.

Предложения

Пожалуйста, размещайте любые предложения, предостережения или исправления в комментариях, и я обновлю сообщение при необходимости.

20 способов защитить вашу конфигурацию Apache был впервые опубликован 6 декабря 2005 г.

Обзор веб-сервера

| Netcraft News

В опросе , октябрь 2020 года, , мы получили ответы с 1 205 797 275 сайтов в 264 098 084 уникальных доменах и 10 449 223 компьютерах с выходом в Интернет.Это отражает увеличение на 9,50 миллиона имен хостов и 111 000 компьютеров, но потерю 187 000 доменов.

nginx продемонстрировал наибольший рост доменов и компьютеров с выходом в Интернет, где он лидирует с 79,9 миллионами доменов и 3,58 миллионами компьютеров, что дает ему доли 30,2% и 34,2%. Тем не менее, рост nginx был опережает Google по количеству активных сайтов: Google получил 1,31 миллиона активных сайтов по сравнению с ростом nginx в 1,06 миллиона. Этот рост делает Google единственным крупным поставщиком, чья рыночная доля активных сайтов в этом месяце увеличилась, и сейчас она составляет чуть более 10%.Несмотря на падение на 0,79 процентного пункта, Apache по-прежнему лидирует с долей активных сайтов 25,7%.

Вопреки значительному росту других показателей, nginx продемонстрировал наибольшее падение своего присутствия среди миллиона веб-сайтов, число которых сократилось на 3 030, что снизило его долю до 25,5%, в то время как Apache продолжает лидировать с 28,3%.

Другие заметные изменения в этом месяце включают сокращение на 8,10% количества доменов, обслуживаемых веб-серверами Microsoft, которое упало на 1,73 миллиона до 19.6 миллионов. Во многом это было вызвано продолжением миграции припаркованных доменов GoDaddy с собственной инфраструктуры хостинга GoDaddy на серверы OpenResty в облаке Google, в результате чего количество доменов на базе OpenResty увеличилось на 1,92 миллиона до 36,4 миллиона. Единственный рынок, на котором Microsoft увеличила свою долю, — это один из миллионов веб-сайтов, на котором она получила 319 дополнительных сайтов, достигнув доли в 7,20%.

Платформа приложений DigitalOcean

DigitalOcean вышла на арену «Платформа как услуга» (PaaS), запустив свой новый продукт «Платформа приложений», который можно использовать для создания, развертывания и масштабирования веб-приложений и статических веб-сайтов.Это полностью управляемый сервис, основанный на DigitalOcean Kubernetes и других открытых стандартах, предлагающий большую часть гибкости Kubernetes без связанной с этим сложности.

Конкурируя с такими, как AWS Elastic Beanstalk, Oracle Cloud Platform и Microsoft Azure App Service, DigitalOcean App Platform предлагает начальный уровень цен, который позволяет клиентам ознакомиться с платформой, бесплатно развернув до трех статических сайтов, в то время как динамические приложения могут быть построенным и развернутым от 5 долларов в месяц. Платформа приложений «из коробки» поддерживает несколько популярных языков и фреймворков приложений, включая PHP, Docker, Go, Node.js, Python и Ruby.

Все ценовые уровни, включая бесплатный, включают глобальную доставку контента через Cloudflare, что означает, что приложения, развернутые на платформе приложений, скорее всего, будут учитываться при подсчете количества веб-сайтов, размещенных на Cloudflare, в будущих опросах Netcraft.

Новые выпуски серверов

nginx 1.19.3 был выпущен 29 сентября. Эта версия в основной ветке выпуска включает в себя несколько исправлений ошибок, несколько новых директив и новый модуль ngx_stream_set_module, который позволяет устанавливать переменные в файлах конфигурации nginx.

Также 29 сентября было выпущено

njs 0.4.4. Эта версия языка сценариев, расширяющего nginx, включает новый объект Buffer, а также несколько других новых функций и исправлений ошибок. Позднее, 8 октября, был выпущен NGINX Unit 1.20.0, в котором представлены несколько новых функций, исправления ошибок и поддержка ASGI 3. 0.

Apache Tomcat 8.5.59, Tomcat 9.0.39 и Tomcat 10.0.0-M9 были выпущены 9 октября. Tomcat 10.0.0-M9 считается важной вехой, поскольку он переключается с Java EE на Jakarta EE после передачи Java EE в Eclipse Foundation.Apache предоставил инструмент, который автоматически преобразует существующие проекты Java EE 8, работающие на Tomcat 9, в проекты Jakarta EE 9, которые будут работать на этой последней версии Tomcat 10.





6
Разработчик Сентябрь 2020 Процент Октябрь 2020 Процент Изменение
nginx 407,086,442 34,03% 412,851,9421
Apache 330,682,809 27,64% 326,050,973 27,04% -0,60
Microsoft 95,944,600 8,02% 903,699 Google 45,689,961 3,82% 46,583,411 3,86% 0,04

Читать далее

Remote Apache Monitor — инструмент мониторинга производительности сервера

Что такое мониторинг Apache?

Мониторинг Apache состоит из отслеживания ключевых показателей, связанных с функционированием HTTP-сервера Apache.

HTTP-сервер Apache — популярная платформа веб-серверов с открытым исходным кодом. Apache создает мост между сервером и пользователем веб-сайта, работающего на нем, чтобы доставлять файлы между ними. Каждый раз, когда пользователь делает запрос на веб-сайте, Apache принимает запрос на веб-сайт, выполняет его и возвращает ответ.

Мониторинг Apache может дать вам представление о том, насколько хорошо выполняется этот критически важный процесс. Мониторинг Apache заблаговременно измеряет ключевые метрики производительности веб-сервера, такие как время безотказной работы сервера, простоя, трафик и количество запросов сервера в секунду.С помощью этой информации вы можете быстрее выявлять и устранять проблемы, которые могут повлиять на работу системы или работу конечного пользователя.

Как работает мониторинг Apache?

Администраторы могут отслеживать все действия в Apache, копаясь в ключевых показателях, доступных через модули состояния и журналы доступа к серверу. Для целей мониторинга Apache разбивает свои наиболее важные метрики на две большие категории:

Показатели, к которым можно получить доступ, используя журналы доступа:

  • Рабочие показатели, такие как задержка и байты, которые успешно достигают места назначения
  • Частота ошибок

Показатели, к которым можно получить доступ через модули состояния:

  • Рабочие метрики, такие как количество запросов и байтов, которые должны были попасть в места назначения, но не достигли
  • Использование ресурсов, мощность и активность

Если вы изучите эти источники, вы сможете точно определить замедление и устранить проблемы с производительностью.Точный процесс включения Apache mod_status и настройки журналов доступа Apache будет отличаться в зависимости от вашей операционной системы. Вы также можете собирать информацию о трафике сервера в режиме реального времени с помощью инструментов командной строки.

Существуют инструменты мониторинга серверов Apache с открытым исходным кодом, но платное решение для мониторинга Apache — лучший вариант для комплексного мониторинга производительности.

Почему важен мониторинг производительности Apache?

Мониторинг производительности

Apache важен для того, чтобы гарантировать, что ваш бизнес не замедлится, особенно для критически важных функций, ориентированных на клиентов.

Веб-серверы, такие как Apache, могут не масштабироваться больше, чем несколько тысяч запросов за раз, что делает их уязвимыми для узких мест и других проблем с производительностью при использовании на крупных предприятиях. Узкие места в производительности веб-серверов могут привести к тому, что веб-сайты будут загружать веб-страницы (HTML, CSS, расширенные фрагменты) медленнее, что отрицательно скажется на опыте конечных пользователей.

Также может быть трудно увидеть количество запросов веб-сервера и всплесков трафика, которые могут повлиять на управление мощностью сервера. Если вы не знаете, когда на вашем веб-сервере заканчивается емкость, вы не сможете предвидеть проблемы с производительностью до того, как они возникнут, или быстро их остановить, когда они возникнут.

Веб-серверы также уязвимы для многих из тех же проблем с производительностью, которые преследуют связанную ИТ-инфраструктуру — операционные системы, базы данных, виртуальные машины и оборудование, — и эти проблемы могут вызывать простои веб-сайтов. Важно регулярно отслеживать ряд показателей Apache, чтобы максимально избегать этих проблем.

В чем разница между производительностью мониторинга Apache и IIS?

Apache часто путают с Microsoft Internet Information Services (IIS), потому что они оба имеют аналогичную модульную структуру, но оба совместимы с разными системами.

Apache наиболее совместим с системами Linux, поскольку он часто появляется в пакете служб под названием «LAMP» — Linux, Apache, MySQL и PHP / Perl / Python. Однако Apache все еще можно использовать с системами Unix и Windows. Однако IIS совместим только с Windows. Для целей мониторинга IIS разбивает свои наиболее важные метрики на две широкие категории:

Показатели, к которым можно получить доступ с помощью счетчиков производительности:

  • Метрики доступности, такие как прошедшее время и время безотказной работы службы
  • Метрики ресурсов, такие как процентное время процессора

Показатели, к которым можно получить доступ с помощью журналов веб-сервисов:

  • Метрики HTTP-запроса, такие как общее количество запросов метода в секунду или текущий размер очереди
  • Метрики ответа HTTP, такие как затраченное время или ошибки сервера 5xx
Что делает монитор Apache?

Монитор Apache автоматически собирает и отображает статистику Apache, наиболее важную для производительности веб-сервера. Администраторы могут использовать монитор Apache разными способами, но лучше всего использовать инструмент мониторинга сервера Apache, предназначенный для измерения следующих показателей:

  1. Время обработки запроса: Сколько времени требуется для успешного выполнения запроса
  2. Байт (в секунду и на запрос): Сколько байтов передается на сервер и от сервера в секунду или сколько байтов отправляется через сервер за запрос
  3. Метрики рабочих: Насколько эффективно сервер использует ресурсы
  4. Пропускная способность сети: Насколько эффективно сервер согласовывает потребности в пропускной способности и обрабатывает задержки
  5. Использование ЦП: Индикатор наличия у Apache достаточной вычислительной мощности оборудования для обработки запросов
  6. Использование памяти: Сколько памяти используется на сервере
  7. Время работы: Сколько времени сервер был в рабочем состоянии, вплоть до второго
  8. Использование диска: Сколько места на диске отведено для ведения журнала Apache и других временных файлов
Как работает мониторинг Apache в SAM?

SolarWinds ® Монитор серверов и приложений Монитор серверов Apache разработан как простое в использовании и мощное решение для управления средой Apache и базовой серверной инфраструктурой.

С помощью сложных готовых шаблонов SAM может помочь вам отслеживать производительность Apache по ключевым показателям, таким как общее количество запросов, время безотказной работы сервера и количество простаивающих сотрудников. Вы также можете использовать SAM для мониторинга ключевых процессов на вашем сервере Tomcat, получая данные о производительности, доступности и статистике использования веб-сайта.

Кроме того, вы можете легко контролировать ИТ-компоненты в среде веб-сервера Apache, такие как Linux и MySQL. SolarWinds SAM может предоставить подробные данные о производительности мультивендорных приложений, таких как Microsoft IIS, JBoss, NGINX, Oracle WebLogic и других.

Попробуйте SolarWinds Server & Application Monitor бесплатно в течение 30 дней и посмотрите, какие изменения он может внести в мониторинг вашего Apache.

Информация о веб-сервере Apache

Одним из самых популярных веб-серверов в Интернете является Apache.

Что такое Apache?

Веб-сервер Apache, более популярный как просто Apache, представляет собой платформу веб-сервера с открытым исходным кодом, лежащую в основе большинства веб-сайтов, которые мы видим сегодня во всемирной паутине.Оглядываясь назад на то время, когда он был представлен в середине 90-х и постепенно стал предпочтительной серверной платформой в Интернете, мы можем сказать, что Apache выступал в качестве основной движущей силы сегодняшнего расширения сети. Как «пионер» веб-серверов, Apache превратился в стандарт для разработки других успешных платформ веб-серверов.

Веб-сервер Apache — это работа сообщества открытого исходного кода Apache Software Foundation. А именно тот факт, что он поддерживается усилиями многих сторонников по всему миру, поддерживает его в таком хорошем состоянии и регулярно обновляет новыми полезными функциями и функциями в соответствии с последними требованиями к качеству и безопасности в доставке услуг HTTP.

Откуда взялось это странное название популярного сервера? За его происхождением стоят две интригующие и радикально разные истории. В более популярном из них говорится, что такое название сервера — своего рода дань уважения индейскому племени апачей, известному своей боевой силой и бесстрашным духом. Согласно другой истории, название «сервер Apache» представляет собой звуковой аналог «неоднородного сервера», где «неоднородный» относится к набору исправлений, которые прикреплены к базе кода NCSA HTTPd 1.3.

Apache — кроссплатформенный веб-сервер

Широкое использование сервера Apache в сети заметно через множество веб-платформ и операционных систем, с которыми он работает. Большинство из них хорошо зарекомендовали себя и чрезвычайно популярны среди пользователей, включая Windows, Linux, Unix, Solaris, Mac OS X, Microsoft Windows, NetWare, FreeBSD, OS / 2, и это лишь некоторые из них. Сервер Apache распространяется с богатым набором модулей, позволяющих пользователям запускать на нем различные сценарии и приложения.Это позволяет каждому веб-сайту, размещенному на сервере Apache, быть динамичным, управляемым контентом и полностью совместимым с текущими стандартами HTTP.

Некоторые из возможностей, поддерживаемых сервером, включают поддержку CGI (Common Gateway Interface) и SSI (Server Side Includes), перенаправление URL-адресов, автоматические списки каталогов, аутентификацию пользователей, анонимные пользовательские accessryts, поддержку модулей загрузки, метафайлы HTTP-заголовков, прокси-кеширование. возможности и т. д. С момента своего первого запуска в апреле 1996 года веб-сервер Apache был выпущен в нескольких последовательных версиях, определяемых количеством основных улучшений, внесенных в его конфигурацию.Самые последние и заслуживающие внимания версии Apache включают Apache 2.0, предлагающий значительно упрощенную функциональность, новую систему компиляции, многоязычный обмен сообщениями об ошибках, поддержку IPv6, Unix, протокола mod_echo и многих других, а также Apache 2.2, предлагающий более гибкий пользователь. модули аутентификации и кэширования прокси, поддержка SQL и поддержка файлов размером более 2 ГБ. Для удобства веб-администраторов каждая версия сопровождается полным набором документации.

Глава 2.HTTP-сервер Apache Red Hat Enterprise Linux 6

В Red Hat Enterprise Linux пакет httpd предоставляет HTTP-сервер Apache. Выполните команду rpm -q httpd , чтобы проверить, установлен ли пакет httpd. Если он не установлен и вы хотите использовать HTTP-сервер Apache, выполните следующую команду от имени пользователя root, чтобы установить его:

2.1. HTTP-сервер Apache и SELinux

Когда SELinux включен, HTTP-сервер Apache ( httpd ) по умолчанию работает в ограниченном режиме.Ограниченные процессы выполняются в своих собственных доменах и отделены от других ограниченных процессов. Если ограниченный процесс скомпрометирован злоумышленником, в зависимости от конфигурации политики SELinux, доступ злоумышленника к ресурсам и возможный ущерб, который он может нанести, ограничен. В следующем примере демонстрируются процессы httpd , выполняющиеся в их собственном домене. В этом примере предполагается, что установлены пакеты httpd, setroubleshoot, setroubleshoot-server и policycoreutils-python:

  1. Запустите команду getenforce , чтобы убедиться, что SELinux работает в принудительном режиме:

    ~] $  getenforce 
    Обеспечение соблюдения
     

    Команда getenforce возвращает Enforcing , когда SELinux работает в принудительном режиме.

  2. Запустите команду service httpd start от имени пользователя root, чтобы запустить httpd :

    ~] #  сервис httpd start 
    Запуск httpd: [ОК]
     
  3. Запустите ps -eZ | Команда grep httpd для просмотра процессов httpd :

    ~] $  пс -eZ | grep httpd 
    неограниченное_у: system_r: httpd_t: s0  2850 ? 00:00:00 httpd
    неограниченное_у: system_r: httpd_t: s0  2852 ? 00:00:00 httpd
    Unlimited_u: system_r: httpd_t: s0  2853 ? 00:00:00 httpd
    неограниченное_у: system_r: httpd_t: s0  2854 ? 00:00:00 httpd
    неограниченное_у: system_r: httpd_t: s0  2855 ? 00:00:00 httpd
    неограниченное_у: system_r: httpd_t: s0  2856 ? 00:00:00 httpd
    неограниченное_у: system_r: httpd_t: s0  2857 ? 00:00:00 httpd
    неограниченное_у: system_r: httpd_t: s0  2858 ? 00:00:00 httpd
    неограниченное_у: system_r: httpd_t: s0  2859 ? 00:00:00 httpd
     

    Контекст SELinux, связанный с процессами httpd , — это unlimited_u: system_r: httpd_t: s0 . Вторая последняя часть контекста, httpd_t , — это тип. Тип определяет домен для процессов и тип для файлов. В этом случае процессы httpd выполняются в домене httpd_t .

Политика SELinux определяет, как процессы, запущенные в ограниченных доменах (например, httpd_t ), взаимодействуют с файлами, другими процессами и системой в целом. Файлы должны быть правильно помечены, чтобы разрешить httpd доступ к ним.Например, httpd может читать файлы, помеченные типом httpd_sys_content_t , но не может записывать в них, даже если разрешения Linux (DAC) разрешают доступ на запись. Должны быть включены логические значения, чтобы разрешить определенное поведение, например разрешение доступа к сети для сценариев, разрешение httpd, доступ к томам NFS и CIFS, а также разрешение httpd на выполнение сценариев Common Gateway Interface (CGI).

Когда /etc/httpd/conf/httpd. conf настроен таким образом, что httpd прослушивает порт, отличный от TCP-портов 80, 443, 488, 8008, 8009 или 8443, команда semanage port должна использоваться для добавьте новый номер порта в конфигурацию политики SELinux.В следующем примере демонстрируется настройка httpd для прослушивания порта, который еще не определен в конфигурации политики SELinux для httpd , и, как следствие, сбой запуска httpd . В этом примере также показано, как затем настроить систему SELinux, чтобы позволить httpd успешно прослушивать нестандартный порт, который еще не определен в политике. В этом примере предполагается, что пакет httpd установлен. Выполните каждую команду в примере от имени пользователя root:

  1. Запустите команду service httpd status , чтобы убедиться, что httpd не запущен:

    ~] #  статус httpd службы 
    httpd остановлен
     

    Если результат отличается, запустите команду service httpd stop , чтобы остановить процесс:

    ~] #  служба httpd stop 
    Остановка httpd: [OK]
     
  2. Запустите порт semanage -l | grep -w http_port_t для просмотра портов SELinux позволяет httpd прослушивать:

    ~] #  порт semanage -l | grep -w http_port_t 
    http_port_t TCP 80, 443, 488, 8008, 8009, 8443
     
  3. Отредактируйте / etc / httpd / conf / httpd. conf как пользователь root. Настройте опцию Listen , чтобы в ней был указан порт, не настроенный в конфигурации политики SELinux для httpd . В этом примере httpd настроен на прослушивание порта 12345:

    # Измените это на Слушать определенные IP-адреса, как показано ниже, чтобы
    # предотвращаем появление Apache на всех связанных IP-адресах (0.0.0.0)
    #
    #Listen 12.34.56.78:80
    Слушайте 127.0.0.1:12345
     
  4. Запустите команду service httpd start , чтобы запустить httpd :

    ~] #  сервис httpd start 
    Запуск httpd: (13) В доступе отказано: make_sock: не удалось привязать к адресу 127.0.0.1: 12345
    нет доступных гнезд для прослушивания, выключение
    Невозможно открыть журналы [FAILED]
     

    Регистрируется отказ SELinux, подобный следующему:

    setroubleshoot: SELinux предотвращает привязку httpd (httpd_t) к порту 12345. Для полных сообщений SELinux. запустите sealert -l f18bca99-db64-4c16-9719-1db89f0d8c77
     
  5. Чтобы SELinux разрешил httpd прослушивать порт 12345, как используется в этом примере, требуется следующая команда:

    ~] #  порт semanage -a -t http_port_t -p tcp 12345  
  6. Снова запустите службу httpd start , чтобы запустить httpd и прослушать новый порт:

    ~] #  сервис httpd start 
    Запуск httpd: [ОК]
     
  7. Теперь, когда SELinux настроен так, чтобы разрешить httpd прослушивать нестандартный порт (TCP 12345 в этом примере), httpd успешно запускается на этом порту. ] ‘. GET / HTTP / 1.0 HTTP / 1.1 200 ОК Дата: среда, 2 декабря 2009 г., 14:36:34 GMT Сервер: Apache / 2.2.13 (Red Hat) Accept-Ranges: байты Длина содержимого: 3985 Тип содержимого: текст / html; charset = UTF-8 [… продолжается …]

Настроить веб-сервер Apache

  • Используйте примеры файлов конфигурации в Open-ILS / examples / apache / (для Версии Apache ниже 2.4) или Open-ILS / examples / apache_24 / (для Apache версии 2.4 или выше) для настройки вашего веб-сервера для Evergreen каталог, клиент для персонала, веб-службы и интерфейсы администрирования.Выпустить следующие команды в качестве учетной записи root Linux:

    Debian и Ubuntu.

     cp Open-ILS / examples / apache / eg.conf / etc / apache2 / sites-available /
    cp Open-ILS / examples / apache / eg_vhost.conf / etc / apache2 /
    cp Open-ILS / examples / apache / eg_startup / etc / apache2 /
    # Теперь настройте SSL
    mkdir / и т.  д. / apache2 / ssl
    cd / etc / apache2 / ssl 

    Fedora.

     cp Open-ILS / examples / apache_24 / eg_24.conf /etc/httpd/conf.d/
    cp Open-ILS / examples / apache_24 / eg_vhost_24.conf /etc/httpd/eg_vhost.conf
    cp Open-ILS / examples / apache / eg_startup / etc / httpd /
    # Теперь настройте SSL
    mkdir / и т. д. / httpd / ssl
    компакт-диск / и т. д. / httpd / ssl 
  • Команда openssl вырезает новый ключ SSL для вашего сервера Apache. Для производственный сервер, вам следует приобрести подписанный сертификат SSL, но вы можете просто используйте самоподписанный сертификат и примите предупреждения в штатном клиенте и браузер во время тестирования и разработки. Создайте ключ SSL для Apache сервер, введя следующую команду в качестве учетной записи root Linux:

     openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key 
  • В качестве учетной записи root Linux отредактируйте файл eg. conf , который вы скопировали в место.

    1. Чтобы разрешить доступ к офлайн-интерфейсу загрузки / выполнения с любого рабочей станции в любой сети, внесите следующие изменения (обратите внимание, что вы должны защитить это для производственного экземпляра):

      • (Apache 2.2): замените Allow с 10.0.0.0/8 на Allow со всех
      • (Apache 2.4): Замените Требовать хост 10.0.0.0/8 на Требовать все предоставленные
    2. (Fedora): изменить ссылки из несуществующего каталога / etc / apache2 / по адресу / etc / httpd / .
  • Измените пользователя для сервера Apache.

    • (Debian и Ubuntu): в качестве учетной записи root Linux отредактируйте / и т.д. / apache2 / envvars . Измените экспорт APACHE_RUN_USER = www-data на экспорт APACHE_RUN_USER = opensrf .
    • (Fedora): В качестве учетной записи Linux root отредактируйте /etc/httpd/conf/httpd.conf . Измените User apache на User opensrf .
  • Настройте Apache с настройками производительности, подходящими для Evergreen:

  • (Fedora): в качестве учетной записи Linux root отредактируйте /etc/httpd/eg_vhost.conf файл для изменения ссылок из несуществующего каталога / etc / apache2 / по адресу / etc / httpd / .
  • (Debian и Ubuntu): В качестве учетной записи root Linux включите сайт Evergreen:

     a2dissite default # ДОПОЛНИТЕЛЬНО: отключить сайт по умолчанию (страница «Это работает»)
    a2ensite eg.conf 
  • Сервер Apache Последние версии и история версий

    (Источник изображения: Netcraft )

    Сервер Apache (или HTTPd) сегодня обслуживает примерно 35% всех веб-серверов. Это один из самых популярных веб-серверов, обслуживающий невероятное количество веб-страниц.Однако других, таких как Nginx , быстро сокращают разрыв. Самый убедительный признак этого можно увидеть в большем количестве тех, кто начинает разрабатывать и поддерживать только платформу Nginx.

    На пике своего развития в начале 2000-х Apache отставал почти от половины всех активных веб-сайтов. Что изменилось с его помощью, позволив столь неуклонно расти жесткой конкуренции за последние десять лет?

    Следующий обзор содержит важную информацию, например:

    История и создание Apache

    Что такое Apache?

    Серверы Apache — основные функции

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

    Безопасность серверов Apache

    Серверы Apache Дальнейшее развитие

    История версий

    Заключение


    История и создание Apache

    Программное обеспечение веб-сервера Apache было впервые разработано Робертом МакКулом. Первоначально работая над HTTPd для Национального центра суперкомпьютерных приложений (NCSA), МакКул ушел в 1994 году вместе с рядом других разработчиков. Они сформировали основную команду, которая должна была стать Apache Group.

    Есть две непроверенные теории о том, как программа получила свое название. Первое утверждение состоит в том, что команда хотела отдать дань уважения индейскому племени апачей. Второе объяснение связано с тем, что разработчики считали программное обеспечение «набором исправлений» — отсюда и название «сервер Apache».

    С момента создания и выпуска в 1995 году быстро завоевал популярность и к началу середины 1996 года стал самым популярным веб-сервером в мире. Частично его стремительный рост в то время был связан с растущей популярностью Linux в качестве серверной платформы .

    В то время он также обладал многими желательными функциями, включая возможность простой поддержки виртуальных хостов на основе IP. Позже виртуальные хосты смогли поддерживать это, а также виртуальные хосты на основе имен.

    В результате получился очень популярный веб-сервер, который удовлетворил потребности пользователей, ищущих подходящее программное обеспечение с открытым исходным кодом для многих целей, в том числе для Интернета. Сегодня разработкой веб-сервера Apache наблюдает Apache Software Foundation .

    Что такое Apache?

    Apache — это программное обеспечение веб-сервера, созданное на основе концепции открытого исходного кода . Программное обеспечение веб-сервера помогает получать запросы на подключение и обрабатывать их.Когда пользователь вводит адрес веб-страницы в свой веб-браузер, этот запрос направляется на веб-сервер Apache.

    Термин «веб-сервер» является общим и фактически применяется к машине, способной выполнять то, для чего был создан Apache. Однако он состоит не только из программного обеспечения веб-сервера .

    Полный веб-сервер будет включать оборудование (, такое как ЦП, память и пространство для хранения ), а также операционную систему (ОС). Программное обеспечение веб-сервера , такое как Apache, работает поверх ОС и предназначено для обработки внешних запросов.

    Важно отметить, что разработка основного веб-сервера apache не предназначалась для запуска веб-приложений.

    Серверы Apache — основные функции

    Бесплатно с открытым исходным кодом

    Есть два ключевых следствия того, что сервер Apache является программным обеспечением с открытым исходным кодом. Во-первых, он распространяется бесплатно. Есть коммерческое лицензирование не задействовано . Во-вторых, исходный код широко доступен и открыт для совместной работы.

    Поддержка нескольких ОС Сервер

    Apache является мультиплатформенным, то есть его можно развернуть для использования на нескольких типах ОС . Из-за своих корней он в основном работает в Linux. Однако он также может работать в Microsoft Windows и других системах.

    Из-за снижения популярности некоторых ОС, таких как , BeOS и TPF, Apache сокращает поддержку для них . Однако многоплатформенная поддержка также означает, что веб-сервер Apache может обрабатывать код на многих различных языках программирования .

    Хорошая производительность «из коробки»

    Существует множество причин популярности сервера Apache, помимо того, что он является открытым исходным кодом и многоплатформенным. Например, ключевой чертой является его способность справляться со значительными объемами трафика с минимальными модификациями .

    По своей сути Apache поддерживает наиболее распространенные функции веб-сервера, включая Server Side Includes (SSI), Common Gateway Interface (CGI), перенаправление URL, кэширование прокси и аутентификацию пользователей.

    Вкратце, Apache — это;

    • Бесплатно с открытым исходным кодом
    • Не ограничено лицензией
    • Поддержка нескольких платформ
    • Способен справиться с большим объемом трафика
    • Широкие возможности настройки

    Гибкость и модульность

    Apache также очень желателен из-за его двусторонней модульности . Те, кто хочет увеличить функциональность, могут использовать модули.В качестве альтернативы те , которым требуется облегченное развертывание , могут сократить его до минимальных эксплуатационных требований. Способ управления модулями — одно из главных преимуществ Apache.

    Гибкость, приписываемая Apache, не ограничивается расширением функций или сокращением модулей, а . Кроме того, является одним из самых простых в установке программного обеспечения для веб-серверов и управления им. . Это упрощает миграцию, а перемещение развертывания может быть выполнено с минимальной необходимостью вносить изменения в файл конфигурации.

    Что касается поддержки, то были раздельные эмоции, поскольку коммерчески она доступна только через третьих лиц. В отличие от веб-сервера, такого как, например, Nginx, у нет прямого канала поддержки для бизнес-развертывания . Однако это также можно рассматривать как предоставление корпорациям большей гибкости в выборе поставщика .

    Обширная экосистема

    Построенный на базе Linux, Apache является одним из наиболее хорошо документированных программных продуктов для веб-серверов на рынке .Если в документации есть что-то, что не описано, скорее всего, это не проблема.

    При этом, благодаря его истории и широкому использованию, существует также огромное глобальное сообщество пользователей Apache. Существует огромных возможностей поддержки сообщества , где помощь может быть получена в любое время.

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

    Ранее я отмечал, что часть привлекательности сервера Apache заключается в его способности легко масштабироваться с помощью модулей.Особенно хорошо с этим справляется из-за изолированности его ядра . К сожалению, само ядро ​​Apache имеет небольшой недостаток.

    Первоначальная конструкция ядра Apache использует модель обработки, называемую prefork , которая назначает один процесс (или поток) для каждого соединения. Благодаря огромным возможностям серверного оборудования и сегодняшнему объему веб-трафика эта модель стала заметным недостатком Apache.

    Оптимизация существует, например, с использованием модулей многопроцессорной обработки, но Apache не работает из коробки для веб-сайтов с большим объемом трафика.Обычно считается, что Apache идеален для сайтов, получающих менее 1000 запросов в час .

    По сравнению со многими другими веб-серверами, Apache необходимо обрабатывать чрезмерно большее количество запросов на одно соединение. (Источник изображения: RootUsers)

    Проблема возникает из-за того, что Apache использует файл .htaccess для хранения части своих данных конфигурации . Каждый раз, когда делается запрос, этот файл необходимо прочитать. При большой громкости это становится узким местом при вводе-выводе.

    Из-за этого главный конкурент Apache, Nginx, как известно, работает в 2–2,5 раза быстрее .

    Обработка контента: статическая или динамическая

    На заре Интернета большинство веб-сайтов просто обслуживали статический контент . Доставка такого типа контента довольно проста — запрос и обслуживание. Сегодня, благодаря веб-приложениям и использованию различных скриптов, сайты , доставляющие динамический контент , стали обычным явлением.

    Динамические веб-сайты популярны из-за их способности к сложному поведению. Эти сайты , как правило, очень интерактивны, и могут быть созданы на лету в соответствии с различными потребностями. Как и следовало ожидать, потребности веб-сервера для обработки этих двух типов контента не совпадают.

    Благодаря простоте , обслуживающей статический контент, Apache (и большинство других веб-серверов) используют очень прямой подход . Когда запрос получен, сайт просто обслуживается «как есть».Именно в обработке динамического контента Apache идет своим путем.

    Apache пытается использовать очень упрощенный подход к динамическому контенту, пытаясь прочитать его напрямую. Затем он передает эти результаты в ответ на исходный запрос. В результате процесс внедрения серверного программного обеспечения Apache значительно упростился.

    Проблема в том, что для интерпретации динамических файлов требуются модули, поскольку ядро ​​не предназначено для их обработки. Это приводит к менее оптимальной эффективности , особенно при увеличении нагрузки.

    Безопасность серверов Apache

    Как и большинство серверного программного обеспечения, Apache был разработан для обеспечения безопасности. Однако, как и почти все, что связано с этим, остается возможность взлома и эксплойтов. Это неоднократно демонстрировалось на протяжении жизни сервера Apache.

    Еще одним недавним примером уязвимости (которая с тех пор была исправлена) была CVE-2019-0211. Уязвимость была обнаружена исследователем, которая могла позволить злоумышленникам получить полный root-доступ к серверу.

    Эти недостатки существуют наряду с возможными уязвимостями, которые существуют просто из-за того, как был спроектирован сервер Apache. Некоторые потенциальные слабые места в развертывании сервера Apache по умолчанию включают:

    • Включенные списки каталогов
    • Отсутствие SSL-шифрования
    • Запуск пользователя и группы демона
    • Информация о конфигурации в нижнем колонтитуле документов, созданных сервером
    • Включение возможно ненужных модулей

    Повышение безопасности Apache

    Несмотря на присущую им надежность, следует отметить, что технических специалистов должны предпринять дальнейшие шаги для усиления безопасности развертываний серверов Apache .Это потребует изменения настроек по умолчанию, а также установки дополнительных модулей безопасности, особенно mod_security .

    Основные действия по закалке должны включать как минимум:

    • Установка mod_evasive — этот жизненно важный модуль используется, чтобы помочь серверам Apache смягчить последствия распределенного отказа в обслуживании (DDoS), а также атак методом грубой силы. Он работает путем занесения в черный список неудачных нескольких попыток входа в систему и помогает отслеживать отмеченные отрицательные IP-адреса.
    • Поддержание HTTP-ограничений — Еще одна утилита для защиты от DDoS-атак, установка этих ограничений поможет противостоять самой базовой концепции таких атак — потоку запросов. Простая, но очень эффективная.
    • Удаление неиспользуемых модулей — Хотя это обычная кроссплатформенная тактика, у Apache есть преимущество, поскольку он сосредоточен на модульности. Его способность к разборке позволяет пользователям жестко ограничивать количество используемых модулей, снижая профили риска
    • Запрет индексирования каталогов — Доступ к корневому каталогу является причиной большого зла, и его отключение может помочь защитить содержимое вашего основного каталога.
    • Маскирование деталей конфигурации сервера — Чем меньше у злоумышленника информации о сервере, тем лучше. К сожалению, есть случаи, когда Apache имеет тенденцию добавлять эту информацию, и это необходимо предотвратить.
    • Отключение возможности переопределения .htaccess — Этот основной файл жизненно важен для многих веб-сайтов, особенно для сайтов WordPress, которые сегодня очень популярны. Убедитесь, что сервер блокирует этот файл, если нет особой причины, по которой этого не должно быть.
    • Развертывание Mod SSL — К сожалению, сервер Apache не поддерживает веб-страницы с SSL из коробки. Для этого вам нужно будет использовать мод SSL, который использует OpenSSL для криптографии.

    Обратите внимание, что действия по усилению защиты иногда зависят от версии HTTP-сервера Apache.

    Дальнейшее развитие серверов Apache

    Текущим последним выпуском Apache httpd является версия 2.4.46. Однако это скорее незначительное обновление с небольшой горсткой обновлений безопасности , касающихся CVE-2020-11984, CVE-2020-11993, и небольшими изменениями в mod_http2 .

    Последним крупным выпуском сервера Apache была версия 2.4, примерно десять лет назад. Версия 2.4 в первую очередь предназначалась для перехода к облачной технологии в то время и оптимизации производительности Apache для этих платформ .

    Чтобы действительно понять направление, в котором движется сервер Apache, необходимо понимание того, что Apache Foundation твердо верит в открытый и совместимый Интернет.Это становится все более сложной задачей, поскольку ведущие лидеры отрасли отстаивают свой индивидуальный подход к технологиям.

    Люди, которые разрабатывают и поддерживают Apache, считают, что эти действия ломают фундамент, позволивший серверу Apache расти в первую очередь. Большая часть будущего будет потрачена на решение этих проблем и попытки избежать сценариев, в которых монетизация стимулирует создание продукта. .

    По словам основных основателей Apache, часть этих попыток будет включать активное участие в образовательных программах, общение и усиление поддержки внутри сообщества.

    История версий
    • Апрель 1995 г. — Первый публичный выпуск Apache HTTP Server версии 0.6.2.
    • Июнь 1995 г. — Переход на новую серверную базовую архитектуру «Шамбала» с модульной структурой и API.
    • Март 1999 г. — Основание Apache Software Foundation
    • Декабрь 2001 г. — выпущен Apache 1.0.
    • Апрель 2002 г. — выпущен Apache 2.0 для поддержки отфильтрованного ввода-вывода и IPv6.
    • Январь 2004 — Кодовая база перелицензирована на Apache 2.0 License
    • Декабрь 2005 г. — выпуск Apache 2.2
    • Сентябрь 2009 г. — Apache обслуживает более 54,48% всех веб-сайтов.
    • Март 2000 — Представлен Apache версии 2.0 Alpha 1 с полной переработкой архитектуры сервера.
    • , апрель 2002 г. — Более гибкая авторизация через API, улучшенные модули кеширования и прокси.
    • Август 2011 г. — выпуск Apache 2.2.20 исправляет ошибку DoS «Apache Killer».
    • Декабрь 2012 г. — Выпущена версия 2.4. Первый крупный выпуск за более чем шесть лет, направленный на повышение производительности облака.
    • Октябрь 2015 г. — добавлена ​​поддержка HTTP / 2
    • Апрель 2019 г. — обновление 2.4.39 исправляет шесть недостатков, включая уязвимость Carpe Diem.
    • Август 2020 г. — выпущена версия 2.4.46

    Заключение

    Нет никаких сомнений в том, что сервер Apache превратился в гиганта, охватывающего весь земной шар.Однако развитие технологий не было полностью благоприятным для открытого исходного кода и взаимодействия.
    Слабые стороны ядра Apache также привлекают все большее внимание по мере того, как в следующее десятилетие работа Интернета переходит в новую среду. Если Apache снова не совершит революцию в и не рассмотрит еще одну переделку своего ядра, вполне вероятно, что конкуренты, такие как Nginx , будут продвигаться дальше в этом бизнесе.

    .

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *