Разное

Сервер апач: Что такое Apache? Подробный обзор веб-сервера Apache

10.11.2019

Содержание

Что такое Apache? Подробный обзор веб-сервера Apache

Глоссарий

access_time

9 декабря, 2020

hourglass_empty

4мин. чтения

Что такое Apache? Это программное обеспечение с открытым исходным кодом, веб-сервер, который обеспечивает работу около 46% сайтов по всему миру. Официальное название – Apache HTTP Сервер, поддерживается и развивается компанией Apache Software Foundation.

Веб-сервер позволяет владельцам сайтов обслуживать их контент в интернете, о чём понятно с самого название «веб-сервер». Apache один из самый старых и надёжный веб-серверов с первой версией выпуска более 20 лет назад в 1995 году.

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

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

Попробуйте хостинг от Hostinger. Верните ваши деньги в течение 30 дней, если вас что-то не устроит. Воспользуйтесь предложением и разместите сайт до 90% дешевле!

К предложению

Что такое веб-сервер?

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

Работа веб-сервера – обслуживать сайт в интернете. Для этого он выполняет роль посредника между компьютером сервера и компьютером клиента. Он берёт контент с сервера на каждый запрос пользователя и доставляет его в сеть.

Самой большой задачей веб-сервера является одновременное обслуживание различных запросов от многих пользователей. Веб-сервер обрабатывает файлы написанные на разных языках программирования, таких как PHP, Python, Java и другие.

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

Как работает веб-сервер Apache?

Хоть Apache и называется веб-сервер, но в реальном положении вещей он является не сервером, а программой, которая запускается на сервере. Его задача установить соединение между сервером и браузером посетителей (Firefox, Google Chrome, Safari и др.) при доставке файлов туда и обратно между ними (клиент-серверная структура). Apache – это кроссплатформенное программное обеспечение, что значит оно хорошо работает как на Unix, так и на Windows серверах.

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

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

Знаете ли вы, что в Hostinger есть специальные предложения? Посетите нашу страницу купонов и сэкономьте до 82%!

Не стоит забывать, что это предложение ограничено во времени!

Apache и другие веб-сервера

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

Apache или NGINX

Nginx произносится как Engine-X, это более новое веб-серверное программное обеспечение с первым релизом в 2004 году. Как на сегодня он добился большой популярности среди владельцев сайтов. Nginx был создан для решения так называемой проблемы c10k – проблемы 10 тысяч соединений, что означает, что веб-сервера, использующие потоки не могут обрабатывать запросы пользователей более, чем с 10 000 подключений одновременно.

  1. Так как Apache использует структуру основанную на потоках, владельцы сайтов с высоким трафиком могли столкнуться с проблемой производительности. Nginx один из веб-серверов, который был нацелен на решение проблемы c10k и возможно это одно из самых успешных решений.
  2. Nginx имеет событийно ориентированную архитектуру, которая не создаёт новый процесс для каждого запроса. Вместо этого он обрабатывает каждый входящий запрос в едином потоке. Этот главный процесс управляет несколькими рабочими процессами, которые выполняют непосредственную обработку запросов. Модель Nginx, основанная на событиях распространяет запросы пользователей среди рабочих процессов эффективным путём, что приводит к лучшей масштабируемости.
  3. Если вам нужно обслуживание сайта с высокой посещаемостью, то Nginx – отличный выбор, поскольку он может сделать это, затратив минимальные ресурсы. И не случайно он используется сайтами с большим количеством показов, такими как: Netflix, Hulu, Pinterest и Airbnb.
  4. Однако для мелких и средних игроков, Apache имеет несколько преимуществ в сравнении с Nginx, среди которых: более простая настройка, множество модулей и среда дружественная для начинающих.

Apache или Tomcat

Tomcat – это веб-сервер также разработанных Apache Software Foundation, поэтому его официальное название Apache Tomcat. Это тоже HTTP-сервер, однако он обрабатывает приложения Java вместо статических сайтов. Tomcat может запускать несколько Java спецификаций, таких как: Java Servlet, Java Server Pages (JSP), Java EL и WebSocket.

  1. Tomcat был разработан специально для приложений на Java, в то время как Apache позиционируется как HTTP-сервер. Вы можете использовать Apache совместно с другими языками программирования (PHP, Python, Perl и т. д.) с помощью специального модуля Apache (mod_php, mod_python, mod_perl и др.).
  2. Хотя вы и можете использовать сервер Tomcat для статических веб-страниц, но это будет менее эффективно, чем использование Apache. Например, Tomcat заранее загружает виртуальную машину Java и другие Java-библиотеки, которые могут быть ненужными для работы вашего сайта.
  3. Tomcat также хуже настраиваемых в сравнении с другими веб-серверами. Например, для запуска WordPress, лучшим выбором будет стандартный HTTP-сервер, такой как Apache или NGINX.

Apache: преимущества и недостатки

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

Преимущества:

  1. Бесплатный даже для использования в коммерческих целях.
  2. Надёжный, стабильное программное обеспечение.
  3. Часто обновляемый, регулярные патчи безопасности.
  4. Гибкий благодаря своей модульной структуре.
  5. Легко настраиваемый, дружелюбный для начинающих.
  6. Кроссплатформенный (работает одинаково хорошо на Unix и на Windows серверах).
  7. Работает для сайтов на WordPress сразу после установки без дополнительных настроек.
  8. Большое сообщество и легко доступная поддержка в случае любой проблемы.

Недостатки:

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

Что ещё почитать?

Хотите узнать больше об основах хостинга сайтов и разработке? Познакомьтесь с нашими руководствами:

Итак, что такое Apache?

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

Вы можете установить сайт WordPress на веб-сервере Apache без каких-либо настроек. Кроме того, Apache прекрасно работает со многими другими системами управления контентом (Joomla, Drupal и др. ), веб-фреймворками (Django, Laravel и др.) и языками программирования. Это делает его уверенным решением для всех типов хостинг платформ, таких как VPS или общий хостинг.

Установка Apache HTTP Server 2.2.22

Статья описывает процесс установки и первоначальной настройки на локальном компьютере, работающим под операционной системой Windows XP, прекрасно зарекомендовавшей себя связки программ, используемых при создании, как крупных, так и средних веб-проектов: Apache, MySQL, PHP и phpMyAdmin.

Авторы: Виктор Волков, Иван Шумилов

Содержание:


Сайт разработчика: http://www.apache.org/
Дистрибутив (Apache 2.2 Win32 Binary): http://www.apachelounge.com/download/
Прямая ссылка: httpd-2.2.22-win32.zip

Вот он – великий и ужасный. Сгубивший на своём веку множество начинающих веб-разработчиков, сложивших головы на настройке его конфигурационных файлов. 🙂 Но мы с вами люди, крепких нервов и стальных желудков — поэтому, поехали.

Начальная установка и настройка

Распакуйте архив дистрибутива в каталог C:\Apache2.

Откройте в текстовом редакторе файл «C:\Apache2\conf\httpd.conf», являющийся основным конфигурационным файлом сервера Apache.

Ну а теперь держитесь. Женщинам, старикам и детям просьба – дальше не читать. За психическое состояние людей, дочитавших статью до конца – авторы ответственности не несут. 🙂

Правка файла httpd.conf

  1. Для загрузки модуля mod_rewrite найдите и раскомментируйте (уберите в начале строки символ «#») данную строку:
    LoadModule rewrite_module modules/mod_rewrite.so
  2. Для загрузки PHP интерпретатора, в конец блока загрузки модулей необходимо добавить строку:
    LoadModule php5_module «C:/php/php5apache2_2.dll»
  3. Определите каталог содержащий конфигурационный файл PHP, добавив ниже следующую строку:
    PHPIniDir «C:/php»
  4. Найдите и раскомментируйте строку:
    ServerName www.example.com:80
    Отредактируйте ее следующим образом установив изначальное имя сервера:
    ServerName localhost:80
  5. Найдите строку:
    DocumentRoot «c:/Apache2/htdocs»
    Назначьте корневую директорию управления сайтами (немного позже мы ее создадим):
    DocumentRoot «C:/apache»
  6. Найдите данный блок:
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    </Directory>
    И замените его на нижеследующий:
    <Directory />
    Options Includes Indexes FollowSymLinks
    AllowOverride All
    Allow from all
    </Directory>
  7. Удалите или закомментируйте первоначальный блок управления директориями (он нам не понадобится), который без комментариев выглядит примерно так:
    <Directory «c:/Apache2/htdocs»>
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>
  8. Найдите блок:
    <IfModule dir_module>
    DirectoryIndex index. html
    </IfModule>
    Замените его на:
    <IfModule dir_module>
    DirectoryIndex index.html index.htm index.shtml index.php
    </IfModule>
  9. Найдите строку:
    ErrorLog «logs/error.log»
    Замените на нижеследующую (в этом случае просматривать глобальный файл ошибок сервера будет удобнее):
    ErrorLog «C:/apache/error.log»
  10. Найдите строку:
    CustomLog «logs/access.log» common
    Замените на:
    CustomLog «C:/apache/access.log» common
  11. Для работы SSI (включения на стороне сервера) следующие строки, находящийся в блоке <IfModule mime_module>, необходимо найти и раскомментировать:
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
  12. Добавьте ниже, в тот же блок <IfModule mime_module>, две строки:
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
  13. И, наконец, найдите и раскомментируйте строки:
    Include conf/extra/httpd-mpm.conf
    Include conf/extra/httpd-autoindex. conf
    Include conf/extra/httpd-vhosts.conf
    Include conf/extra/httpd-manual.conf
    Include conf/extra/httpd-default.conf

Сохраните изменения и закройте файл «httpd.conf»

Теперь откройте файл «C:\Apache2\conf\extra\httpd-vhosts.conf» и произведите в нем следующие изменения.

Существующие блоки примеров виртуальных хостов необходимо удалить, и вставить только нижеследующее:
NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot «C:/apache/localhost/www»

ServerName localhost
ErrorLog «C:/apache/localhost/error.log»
CustomLog «C:/apache/localhost/access.log» common
</VirtualHost>

Сохраните изменения и закройте файл «httpd-vhosts.conf»

Настройка конфигурационных файлов завершена, теперь необходимо установить сервис Apache2.2.

Установка сервиса Apache2.2 в картинках

Запускаем командную строку и вводим в ней «C:\Apache2\bin\httpd.exe -k install»

Вот что мы должны увидеть при успешной установке сервиса Apache2. 2.

Если все прошло успешно, движемся дальше — устанавливаем ручной запуск сервиса Apache2.2 для чего проходим путь: «Start» («Пуск») → «Control Panel» («Панель управления») → «Administrative Tools» («Администрирование») → «Services» («Службы»), в открывшемся окне управления служб выбираем строку «Apache2.2» и делаем на ней двойной щелчок, после чего во вкладке «General» («Общие») выбираем ручной запуск сервиса — «Startup type: Manual» («Тип запуска: вручную»). Это необходимо сделать для того, чтобы лишние службы не загружали систему. Учитывая, что домашний компьютер используется не только для веб-разработок, но и для многих других нужд, ручной запуск и остановка, непостоянно используемых сервисов, является наиболее приемлемым.

Создание структуры каталогов виртуальных хостов

В корне диска необходимо создать каталог «apache» — в нем будут лежать ваши виртуальные хосты (домены), глобальный файл журнала ошибок «error.log» (создается программой при первом запуске, автоматически), глобальный файл доступа «access. log» (создается автоматически). В каталоге «apache» создаем еще одну пустую папку — «localhost», в которой, в свою очередь, создаем папку «www», именно в последней и надо будет держать наше добро в виде локальных скриптов. Такая, казалось бы странная структура каталогов, продиктована схожей схемой построения каталогов в системах Unix, и призвана упростить в дальнейшем ее понимание и использование.

Пример создания виртуального хоста

При необходимости установки собственных виртуальных хостов сделайте следующее:

Откройте файл «httpd-vhosts.conf», и создайте в нём блок, примерно, следующего содержания:
<VirtualHost *:80>
# Папка, в которой будет корень вашего хоста.
DocumentRoot «C:/apache/test.ru/www»
# Домен по которому вы сможете обращаться к виртуальному хосту.
ServerName test.ru
# Алиас (добавочное имя) домена.
ServerAlias www.test.ru
# Файл, в который будут записываться ошибки.

ErrorLog «C:/apache/test.ru/error. log»
# Файл журнала доступа к хосту.
CustomLog «C:/apache/test.ru/access.log» common
</VirtualHost>

Затем в каталоге «apache», создайте папку «test.ru» (прямо так, с точкой), в которой, в свою очередь, создайте папку «www».

Следующий шаг создания виртуального хоста – это изменение файла C:\WINDOWS\system32\drivers\etc\hosts операционной системы. Откройте данный файл и добавьте в него две строки:
127.0.0.1 test.ru
127.0.0.1 www.test.ru

Теперь запустите сервер Apache выполнив в командной строке «C:\Apache2\bin\httpd.exe -k start», откройте браузер, введите в адресной строке «test.ru» или «www.test.ru» и вы окажетесь в своем виртуальном хосте. Только будьте внимательны, теперь вы сможете попасть на оригинальный сайт с именем виртуального хоста («www.test.ru», если таковой существует), только закомментировав либо удалив строку: «127.0.0.1 www.test.ru», в вышеупомянутом файле «hosts».

Документация Apache, при запущенном сервере, доступна по адресу http://localhost/manual/

Остановить работу Apache можно выполнив в командной строке «C:\Apache2\bin\httpd.

exe -k stop». При необходимости перезагрузить Apache, выполните в командной строке «C:\Apache2\bin\httpd.exe -k restart».

Установка и настройка веб-сервера Apache – завершена.

Создание пакетных файлов для запуска и остановки сервисов

Согласитесь, что вручную редактировать файл «hosts» при каждом запуске сервисов – это не удобно, поэтому для более удобного, одновременного запуска сервисов Apache, MySQL, и изменения файла «hosts» мы создадим два пакетных файла: на запуск и остановку, которые будут выполнять всю рутинную работу автоматически.

При использовании виртуальных хостов необходимо создать в директории C:\apache два файла: vhosts-off.txt – содержащий изначальное содержимое файла «hosts» и vhosts-on.txt – содержащий все виртуальные хосты. Обратите внимание, что при создании новых виртуальных хостов вам необходимо будет добавлять их в файл vhosts-on.txt, а не в C:\WINDOWS\system32\drivers\etc\hosts. Посмотрите на примеры ниже.

Файл vhosts-off. txt (может содержать одну единственную строку):
127.0.0.1 localhost

Пример файла vhosts-on.txt с виртуальными хостами www.test.ru и test.ru:

127.0.0.1 localhost
127.0.0.1 www.test.ru
127.0.0.1 test.ru

В той же директории C:\apache, создайте два пакетных файла: start-webserver.bat – для запуска сервисов и подмены файла «hosts», и stop-webserver.bat – для остановки сервисов и очистки файла «hosts».

Файл запуска start-webserver.bat:

@echo off
echo.
if not exist C:\apache\vhosts-on.txt goto no_vhosts
echo Create virtual hosts:
copy /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET start Apache2.2
NET start MySQL

Файл остановки stop-webserver.bat:

@echo off
echo.
if not exist C:\apache\vhosts-off.txt goto no_vhosts
echo Restore hosts file:
copy /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET stop Apache2. 2
NET stop MySQL

В случае если вы не используете виртуальные хосты или хотите запустить сервисы без подмены файла «hosts», просто уберите из директории C:\apache файлы vhosts-on.txt и vhosts-off.txt.

Одновременно с сервисами удобно запускать программу Apache Monitor, отображающую в системном лотке состояние сервера Apache, для чего можно создать еще один пакетный файл «start-webserver-monitor.bat», содержание которого аналогично файлу «start-webserver.bat» с добавлением в самый конец следующей строки:

start «» «C:\Apache2\bin\ApacheMonitor.exe»

Теперь для запуска всего инструментария вам понадобится запустить файл «start-webserver-monitor.bat», или «start-webserver.bat», а для остановки «stop-webserver.bat». При желании вы можете переименовать эти файлы, переместить их в любое другое место из папки «C:\apache», либо создать на данные файлы ярлыки, например, на рабочий стол.

Установка веб-сервера Apache в CentOS 8

Введение

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

С помощью этого руководства вы установите веб-сервер Apache с виртуальными хостами на ваш сервер на базе CentOS 8.

Предварительные требования

Для выполнения данного руководства вам потребуется следующее:

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

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

С помощью пользователя без прав root с привилегиями sudo, настроенного согласно предварительным требованиям, установите пакет Apache:

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

Если вы выполнили рекомендации из руководства Начальная настройка сервера с CentOS 8. Шаг 4, указанные в разделе предварительных требований, на вашем сервере уже будет установлен брандмауэр firewalld для обслуживания запросов через HTTP.

Если вы планируете настроить Apache для обслуживания запросов через HTTPS, вам также нужно открыть порт 443, включив службу https:

  • sudo firewall-cmd --permanent --add-service=https

Затем перезагрузите брандмауэр, чтобы новые правила начали действовать:

  • sudo firewall-cmd --reload

После перезагрузки брандмауэра вы будете готовы запустить службу и проверить веб-сервер.

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

Apache не запускается автоматически на CentOS после завершения установки. Вам нужно будет запустить процесс Apache вручную:

  • sudo systemctl start httpd

Убедитесь, что служба запущена с помощью следующей команды:

  • sudo systemctl status httpd

Если служба запущена, вы получите значение active (активна) в статусе:

Output

● httpd. service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disa> Active: active (running) since Thu 2020-04-23 22:25:33 UTC; 11s ago Docs: man:httpd.service(8) Main PID: 14219 (httpd) Status: "Running, listening on: port 80" Tasks: 213 (limit: 5059) Memory: 24.9M CGroup: /system.slice/httpd.service ├─14219 /usr/sbin/httpd -DFOREGROUND ├─14220 /usr/sbin/httpd -DFOREGROUND ├─14221 /usr/sbin/httpd -DFOREGROUND ├─14222 /usr/sbin/httpd -DFOREGROUND └─14223 /usr/sbin/httpd -DFOREGROUND ...

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

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

Введите q для возврата к командной строке, а затем введите следующее:

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

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

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

http://your_server_ip

Вы увидите стандартную веб-страницу Apache в CentOS 8:

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

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

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

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

  • sudo systemctl stop httpd

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

  • sudo systemctl start httpd

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

  • sudo systemctl restart httpd

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

  • sudo systemctl reload httpd

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

  • sudo systemctl disable httpd

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

  • sudo systemctl enable httpd

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

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

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

При работе с веб-сервером Apache вы можете использовать виртуальные хосты (аналогичные серверным блокам в Nginx) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. На этом шаге мы будем настраивать домен с именем example.com, но вы должны будете заменить его собственным доменным именем. О том, как настроить доменное имя с помощью DigitalOcean, можно узнать из нашей сетевой документации.

В Apache в CentOS 8 по умолчанию включен один виртуальный хост, настроенный на обслуживание документов из директории /var/www/html. Хотя это хорошо работает для отдельного сайта, при хостинге нескольких сайтов это неудобно. Вместо изменения /var/www/html вы создадите структуру директорий внутри /var/www для сайта example.com, оставив /var/www/html на месте в качестве директории по умолчанию, которая будет обслуживаться, если запрос клиента не будет соответствовать каким-либо другим сайтам.

Создайте директорию html для example.com, используя флаг -p для создания необходимых родительских директорий:

  • sudo mkdir -p /var/www/example. com/html

Создайте дополнительную директорию для хранения файлов журнала для сайта:

  • sudo mkdir -p /var/www/example.com/log

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

  • sudo chown -R $USER:$USER /var/www/example.com/html

Убедитесь, что ваша корневая директория имеет набор разрешений по умолчанию:

  • sudo chmod -R 755 /var/www

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

  • sudo vi /var/www/example.com/html/index.html

Нажмите i для переключения в режим INSERT (ВСТАВКА) и добавьте в файл следующий пример HTML-контента:

/var/www/example.com/html/index. html

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

Сохраните и закройте файл, нажмите ESC, введите :wq и нажмите ENTER.

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

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

  • sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

Затем вы должны попросить Apache выполнить поиск виртуальных хостов в директории sites-enabled. Для этого отредактируйте главный файл конфигурации Apache с использованием vi или любого другого текстового редактора на ваш выбор и добавьте строку, объявляющую опциональную директорию для дополнительных файлов конфигурации:

  • sudo vi /etc/httpd/conf/httpd.conf

Нажмите большую G, чтобы перейти в конец файла. Затем нажмите i для переключения в режим INSERT и добавьте в самый конец файла следующую строку:

/etc/httpd/conf/httpd.conf

...
# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*. conf

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

Начните с создания нового файла в директории sites-available:

  • sudo vi /etc/httpd/sites-available/example.com.conf

Добавьте следующий блок конфигурации и измените домен example.com на собственный:

/etc/httpd/sites-available/example.com.conf

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog /var/www/example.com/log/error.log
    CustomLog /var/www/example.com/log/requests.log combined
</VirtualHost>

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

Сохраните файл и закройте его после завершения.

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

  • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

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

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

SELinux — это модуль безопасности ядра Linux, который обеспечивает повышенную безопасность для систем Linux. CentOS 8 оснащается модулем SELinux, настроенным работу с конфигурацией Apache по умолчанию. Поскольку вы изменили стандартную конфигурацию, настроив пользовательскую директорию журналов в файле конфигурации виртуальных хостов, вы получите ошибку при попытке запуска службы Apache. Для устранения данной проблемы вам нужно обновить политики SELinux, чтобы разрешить Apache записывать данные в нужные файлы.

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

Универсальное изменение политик Apache

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

Запустите следующую команду для установки универсальной политики Apache:

  • sudo setsebool -P httpd_unified 1

Команда setsebool меняет значения булевых значений SELinux. Флаг -P будет обновлять значение времени начальной загрузки, а обновленное значение сохраняется между перезагрузками. httpd_unified — это булево значение, которое позволит SELinux рассматривать все процессы Apache как один тип, поэтому вы активировали его со значением 1.

Изменение политик Apache для директории

Индивидуальная настройка разрешений SELinux для директории /var/www/example.com/log позволит вам получить более полноценный контроль за политиками Apache, но также может потребовать дополнительных действий. Поскольку этот параметр не подразумевает наличия универсально настроенных политик, вам нужно будет вручную задать тип контекста для любых новых директорий.

Вначале проверьте тип контекста, который SELinux указал для директории /var/www/example.com/log:

  • sudo ls -dlZ /var/www/example.com/log/

Эта команда формирует список и выводит контекст SELinux из директории. Вы получите примерно следующий результат:

Output

drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

В настоящее время используется контекст httpd_sys_content_t, который указывает SELinux, что процесс Apache может читать только файлы, созданные в этой директории. В ходе данного обучающего руководства вы измените тип контекста директории /var/www/example.com/log на httpd_log_t​​​​. Этот тип позволит Apache генерировать и добавлять данные в файлы журнала веб-приложения:

  • sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

Затем воспользуйтесь командой restorecon для применения этих изменений и их сохранения между перезагрузками:

  • sudo restorecon -R -v /var/www/example.com/log

Флаг -R запускает эту команду рекурсивно, т.  е. она будет обновлять любые существующие файлы для использования нового контекста. Флаг -v будет распечатывать изменения контекста, внесенные командой. Вы увидите следующий вывод, подтверждающий изменения:

Output

Relabeled /var/www/example.com/log from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:httpd_log_t:s0

Вы можете вывести список контекста еще раз, чтобы посмотреть изменения:

  • sudo ls -dlZ /var/www/example.com/log/

Результат отражает обновленный тип контекста:

Output

drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_log_t:s0 6 Apr 23 23:51 /var/www/example.com/log/

Теперь, когда директория /var/www/example.com/log использует тип httpd_log_t, вы готовы протестировать вашу конфигурацию виртуального хоста.

Шаг 6 — Тестирование виртуального хоста (рекомендуется)

После обновления контекста SELinux с помощью любого метода Apache сможет осуществлять запись в директорию /var/www/example. com/log. Теперь вы можете перезапустить службу Apache:

  • sudo systemctl restart httpd

Сформируйте список содержимого директории /var/www/example.com/log, чтобы убедиться, что Apache создал файлы журнала:

  • ls -lZ /var/www/example.com/log

Вы получите подтверждение того, что Apache удалось создать файлы error.log и requests.log, которые указаны в конфигурации виртуального хоста:

Output

-rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 error.log -rw-r--r--. 1 root root system_u:object_r:httpd_log_t:s0 0 Apr 24 00:06 requests.log

Теперь, когда вы настроили ваш виртуальный хост и обновили разрешения SELinux, Apache будет обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http://example.com, после чего должны увидеть примерно следующее:

Это подтверждает, что ваш виртуальный хост успешно настроен и обслуживает контент. Повторите шаги 4 и 5 для создания новых виртуальных хостов с разрешениями SELinux для дополнительных доменов.

Заключение

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

Если вы хотите развернуть более полный комплекс приложений, ознакомьтесь со статьей о настройке стека LAMP в CentOS 8.

что это такое и как им пользоваться

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

Далее я постараюсь максимально подробно рассказать о нем, приводя объяснения общим терминам.

Понятие «веб-сервер‎»

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

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

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

Работа веб-сервера Apache

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

Все остальное зависит от подключаемых модулей, которые существуют для Apache Web Server, то есть его можно назвать модульным (собираемым из разных дополнений, расширяющих функциональность). Здесь уже создатель сайта сам решает, какие дополнения установить, редактируя конфигурацию через специальный файл под названием .htaccess. Дополнений существует множество – начиная со средств повышения безопасности и заканчивая модулями аутентификации пользователей при вводе учетных данных.

Пример использования файла .htaccess

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

Самая простая строка кода, вводимая в этот файл выглядит так:


AddType "text/html; charset=koi8-r" .html .htm .shtml

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

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

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

Подробнее: Apache Virtual Host documentation

Сравнение Apache с другими веб-серверами

Есть и другие веб-серверы, обладающие своими преимуществами и недостатками. Обо всех них в рамках этой статьи говорить не будем, рассмотрим лишь пару достойных конкурентов.

Начнем с самого известного решения – Nginx. Здесь сказать можно только одно – его главным преимуществом является преодоление барьера в 10 000 одновременных соединений. Apache не может обработать такой большой поток трафика сразу, поэтому многие вебмастера и переключились на альтернативу, когда масштабы их проекта значительно увеличились. Связано это с поточной структурой Apache и невозможностью реализовать прохождение такого барьера. Однако в некотором плане Апач превосходит Nginx, если говорить о простоте настройки, подключении модулей и юзерфрендли-подходе от разработчиков.

Примечание. Хостинг Timeweb на своих серверах использует связку Nginx+Apache: Nginx отдает статический контент, а Apache подключается позже и отвечает за обработку динамического контента.

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

Установка Apache на компьютер

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

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

Подробнее: Как использовать Apache в качестве обратного прокси при помощи mod_proxy на Ubuntu 16.04

Преимущества и недостатки Apache

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

Плюсы

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

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

Минусы

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

  • Влияние трафика на производительность. Apache работает медленно, если наплыв пользователей слишком большой.
  • Дыры в безопасности. Это относится только к тем случаям, когда к веб-серверу подключено огромное количество модулей. Чем их больше, тем сложнее процесс конфигурирования, появляются уязвимые места и дыры.
  • Редактирование файлов в Linux. Управление конфигурационными файлами в этих дистрибутивах осуществляется вручную без графического интерфейса, что не всегда удобно (в качестве рекомендации могу подсказать приложение Apache GUI, благодаря которому настройку можно выполнить через веб-обозреватель).

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

Что такое веб-сервер и для чего он нужен?

Бесплатные уроки по работе с веб-сервером Apache здесь.

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

Что же такое веб-сервер?

Давайте попробуем разобраться в этом вопросе.

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

Для чего же нужна эта программа? Для чего нам нужен веб-сервер?

Основная задача веб-сервера — принимать HTTP-запросы, обрабатывать их и выдавать HTTP-ответы. 

Что же это за HTTP-запросы и ответы?

Мы с этим сталкиваемся каждый день и самая главная программа, которая позволяет работать с HTTP-запросами и ответами — это обычный браузер, который установлен у нас в операционной системе (Google Chrome, Яндекс Браузер, Firefox, Internet Explorer и.т.д.).

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

Наверняка, вы могли обращать внимание, что при наборе какой-то адреса в адресную строку браузера. Перед доменом сайта, первым делом указывается протокол, по которому работает веб-сайт. Либо http, либо https. 

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

Именно веб-сервер обрабатывает эти запросы. Этот веб-сервер может быть установлен на том же компьютере, где установлен браузер. Также этот веб-сервер может быть установлен в каком-то другом месте, другом компьютере в сети Интернет. Разницы здесь нет. Просто, с помощью браузера мы обращаемся к этому веб-серверу и получаем ответ.

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

Веб-сервер — это такая программа, которая является связующим звеном с серверными технологиями.  

Задача веб-сервера принять запрос от HTTP-клиента, понять к какому файлу произошел запрос, обработать этот файл и выдать ответ клиенту.

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

Нужно иметь в виду, что база данных — это отдельная технология (программа) и она не относится к веб-серверу.

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

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

Кроме того, задача веб-сервера создавать журнал ошибок и обращений к файлам (лог). 

Следующая веб-сервера — это аутентификация и авторизация пользователей. Веб-сервер позволяет определять кто к нему обращается, имеет ли он доступ к каким-либо файлам. 

Если веб-сервер не имеет доступа к каким-либо файлам, то веб-сервер просто запрещает доступ к этим файлам. 

Также веб-сервер содержит в себе настройки о том, как и какие файлы нужно обрабатывать на веб-сервере. Что нужно сделать с какой-либо папкой. В общем, эти все правила содержит веб-сервер.

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

Пожалуй, самыми популярными веб-серверами, которые имеются на текущий день являются такие веб-сервера как: Apache, IIS, Nginx.

Вот, собственно говоря, и все по поводу веб-серверов. Самое главное, что нужно понять, не вдаваясь в детали. Веб-сервер — это просто некая программа, которая позволяет принимать HTTP-запросы и выдавать HTTP-ответы. 

«Роковые часы» сервера на Apache.

В чем причина? Изо дня в день, в один и тот же час сервер падает. DDoS — атака? Хостер не подтверждает. Агенты? Отключены. Cron? Нет. Хабраэффект? Хотелось бы, но нет. Шаловливые ручонки? Соблазнительная версия, но не в этот раз. Иногда проходит само, но чаще требуется перезагрузка сервера. В чем дело?

Бывает так. Поисковый робот обращается к вполне безобидному рабочему скрипту с таким сочетанием параметров, что запускает бесконечный (очень длинный) цикл или бесконечную рекурсию. Робот заходит на сервер в одно и то же время, обращается к скрипту 1 или 2 раза. В результате перегруженными оказываются один — два процесса Apache. Через некоторое время после ухода робота работа скрипта прекращается по timeout и процессы могут высвободиться, освобождая сервер. Но если обращений было много больше двух и затронуто большое количество процессов Apache, то ситуация сама собой не исправится и сервер придется перезагружать.

Как найти файл и скрипт, вызывающий проблему?

Используйте специальный модуль Apache, называемый mod_status. Для этого:

1. Проверьте, что этот модуль установлен и находится по адресу /etc/httpd/modules/mod_status.so
2. В файле /etc/httpd/conf/httpd.conf присутствуют и раскомментированы строки:

LoadModule status_module modules/mod_status.so

ExtendedStatus On

<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>

Просмотрите весь конфигурационный файл, строки не обязаны находится рядом. Если строки отсутствуют, добавьте их, проверьте корректность конфигурации (apachectl configtest) и перезапустите Apache (apachectl graceful).

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

curl http://127.0.0.1:80/server-status > /tmp/server_status.html

Сведения о состоянии сервера оказались записаны в файл server_status.html. Скачав его на локальную машину, запустите его в браузере и посмотрите, какой процесс сильно загружает CPU. Можно принимать меры!

Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!

Назад в раздел

Оптимизация производительности веб-сервера Apache — ИТ Проффи

Многие говорят, что веб-сервер Apache не обладает достаточной производительностью. Однако, это абсолютно не соответствует действительности. Данное мнение сложилось вследствие искажения оценки объективной особенности Apache – его работу и производительность необходимо скрупулёзно оптимизировать, что не так-то и просто. На самом деле Apache – это очень мощный и очень производительный веб-сервер. Да к тому же ещё так легко масштабируется и адаптируется к различным условиям применения. Однако, это всё в совокупности и является тормозящим фактором, сильно влияющим на производительность. В данной статье речь пойдёт о том, каким образом правильно и эффективно оптимизировать работу и производительность Apache без ущерба выбранной функциональности. Предлагаемые методы являются универсальными, допускается лишь незначительные различия в их реализации, в зависимости от используемой системы Linux.

Отключение неиспользуемых функций и модулей

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

Однако, если наблюдается недостаточная производительность или слишком большое потребление аппаратных ресурсов (как например памяти), следует выяснить, какие модули Apache для текущей конфигурации никогда не используются и даже не актуальны. Например, для современных, даже самых требовательных веб-приложений требуется не более 10-12 модулей. Не говоря уже о среднестатистических сайтах на WordPress или Drupal.

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

Syntax error on line 6 of /etc/apache2/sites-enabled/site-company1:
Invalid command ‘DAVLock’, perhaps misspelled or defined by a module not included in server configuration
Action ‘configtest’ failed

В данном случае Apache использует модуль, который, в свою очередь, не может задействовать функционал, предоставляемый модулем dav_fs, который был отключен.
В Debian-системах, таких как Ubuntu, модули Apache хранятся в каталоге /etc/apache2/mods-available, а список включенных модулей — в каталоге /etc/apache2/mods-enabled. Отключение модуля выполняется путём удаления соответствующего файла в каталоге mods-enabled, либо можно использовать команду:

$ sudo a2dismod mpm_itk

Аналогичным образом работает и команда включения модулей — a2enmod.

Самыми «прожорливыми» модулями Apache, потребляющими довольно много ресурсов системы являются: Rewrite, SSL, Phyton, PHP, Perl. Если они не используются, то конечно, их следует отключать. Либо заменять другими менее требовательными аналогами. Например, модуль Rewrite можно в большинстве случаев заменить модулем Alias.

Оптимизация обслуживания HTTP-запросов

Различные сайты написаны на различных языках программирования. Соответственно, для обслуживания HTTP-запросов к ним и их полноценной работы Apache использует интерпретаторы языков. Взаимодействие веб-сервера и интерпретатора обеспечивается соответствующими модулями. Для PHP это mod_php, а для Ruby – mod_rails. Это «стандартные» модули, предоставляемые базовой поставкой Apache. Однако, они разработаны только с учётом обеспечения дополнительной функциональности без каких-либо решений по оптимизации производительности и потребления ресурсов.

Так, например, модуль mod_php способен потреблять около 100 Мб RAM для работы всего одного процесса, обслуживающего как минимум один HTTP-запрос. Следовательно, чем больше запросов, тем больше потребляемая память только от одного PHP-модуля. В данной ситуации в качестве альтернативы, но уже с куда более оптимизированными производительностью и потреблением памяти существует модуль php-fpm. Этот модуль позволяет обрабатывать HTTP-запросы к веб-приложениям, написанным на PHP, используя технологию Fast CGI. Аналогичными решениями являются uWSGI для Python и Unicorn для Ruby.

Дело в том, что при использовании модуля php-fpm и ему подобных, изначально в памяти создаётся постоянный процесс для интерпретатора PHP ( Python или Ruby). И только после этого происходит перенаправление запросов от Apache к этому процессу для дальнейшей обработки. Таким образом, динамический контент обрабатывается всего двумя процессами. При этом потребление памяти может снизиться более чем в 8 раз.

Ограничение максимального количества процессов Apache

Как было показано выше, один дочерний процесс Apache может использовать 100 Мб RAM и выше. Когда таких процессов слишком много, память системы быстро будет исчерпана и веб-сервер начнёт «тормозить». В конфигурации по-умолчанию для Apache зарезервировано определённое количество процессов, например 30. Для не самого мощного сервера это может быть слишком много. Вообще этот параметр всегда важно тщательно подбирать для конкретной системы.

Для начала важно выяснить, сколько памяти требуется (с небольшим запасом) для корректной и стабильной работы веб-приложения. Затем нужно выделить большую часть свободной памяти веб-серверу. Ситуацию с памятью можно отследить, используя команду top, например:

top -bn 1
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
...
15015 www-data 20 0 232m 9644 1900 S 0.0 1.6 0:00.02 apache2
15016 www-data 20 0 232m 9644 1900 S 0.0 1.6 0:00.01 apache2
15017 www-data 20 0 232m 9644 1900 S 0.0 1.6 0:00.02 apache2

Как можно видеть, в системе запущено 3 процесса Apache почти по 10 Мб (столбец RES) каждый. Ели этого много для используемой конфигурации, то целесообразно уменьшить количество процессов для одновременно обрабатываемых запросов. Это делается путём изменения соответствующего параметра (или параметров) работы мультипроцессингового модуля Apache – по-умолчанию это mpm_prefork. В системах Ubuntu соответствующий конфигурационный файл находится в /etc/apache2/mods-available и называется mpm_prefork.conf. Нужно изменить значение параметра MaxClients в соответствии с расчитанным значением объёма RAM, которое можно выделить Apache для данной системы. Например, по-умолчанию это значение обычно 25 — 30. Для не самого мощного сервера можно уменьшить до 15 (и даже меньше):

StartServers 3
MinSpareServers 3
MaxSpareServers 5
MaxClients 15
MaxRequestsPerChild 0

Теперь нужно перезагрузить Apache, чтобы сделанные настройки вступили в силу. Конечно, когда количество клиентов достигнет максимального количества, то пользователь просто получит ошибку сервера. Однако, он всегда может перезагрузить страницу и снова получить доступ к серверу (веб-приложению). Поскольку ограничение обслуживающих процессов не позволяет превысить лимит памяти, отведённой Apache, то это никак не скажется на его производительности. Ведь памяти всегда хватает. Это не совсем «демократично» по отношению к пользователям. Однако это лучше, чем бесконечно поддерживать «тормозящие» или полузависшие процессы Apache.

Использование альтернативных мультипроцессинговых модулей

Здесь нет чётких рекомендаций относительно того, кокой именно мультипроцессинговый модуль и для какой конфигурации использовать. Одни из них экономят процессорное время, другие — использование RAM.

Например, по-умолчанию Apache использует универсальный модуль mpm-prefork. Который работает практически со всеми интерпретаторами (PHP, Ruby и т. д.). Однако в качестве альтернативы можно использовать модуль mpm-worker. Который обладает более производительной стратегией управления дочерними процессами. Но данный модуль не поддерживает работу с интерпретаторами PHP и Ruby через стандартные внешние модули, такие как mod-php. Поэтому выбор мультипроцессингового модуля Apache – это очень выверенное и обдуманное решение.

Заключение

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

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

Что такое апач? Подробный обзор веб-сервера Apache

Глоссарий

access_time

17 июня 2020 г.

hourglass_empty

5min Read

person_outline

Domantas G.

Apache — это бесплатный веб-сервер с открытым исходным кодом. обслуживает около 40% веб-сайтов по всему миру. Официальное название — Apache HTTP Server, он поддерживается и разрабатывается Apache Software Foundation.

Он позволяет владельцам веб-сайтов предоставлять контент в Интернете — отсюда и название «веб-сервер».«Это один из самых старых и надежных веб-серверов, первая версия которого была выпущена более 20 лет назад, в 1995 году.

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

Здесь, в Hostinger, наша инфраструктура веб-хостинга использует Apache параллельно с NGINX, еще одним популярным программным обеспечением для веб-серверов. Эта конкретная установка позволяет нам получить лучшее из обоих миров.Это значительно повышает производительность сервера, компенсируя слабые стороны одного программного обеспечения сильными сторонами другого.

Перейдите на хостинг Hostinger сегодня и получите 30-дневную гарантию возврата денег!

Начните здесь


Что такое веб-сервер?

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

Задача веб-сервера — обслуживать веб-сайты в Интернете. Для достижения этой цели он действует как посредник между сервером и клиентскими машинами. Он извлекает контент с сервера по каждому запросу пользователя и доставляет его в Интернет.

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

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

Как работает веб-сервер Apache?

Хотя мы называем Apache веб-сервером, это не физический сервер, а скорее программное обеспечение, работающее на сервере. Его задача — установить соединение между сервером и браузерами посетителей веб-сайтов (Firefox, Google Chrome, Safari и т. Д.).) при передаче файлов между ними (структура клиент-сервер). Apache — это кроссплатформенное программное обеспечение, поэтому оно работает как на серверах Unix, так и на Windows.

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

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

Apache и другие веб-серверы

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

Apache против NGINX

Nginx, произносится как Engine-X, — это новое приложение веб-сервера, впервые выпущенное в 2004 году. На сегодняшний день оно приобрело довольно популярную популярность среди владельцев веб-сайтов. Nginx был создан для решения так называемой проблемы c10k, что означает, что веб-сервер, использующий потоки для обработки пользовательских запросов, не может одновременно управлять более чем 10 000 подключений.

  1. Поскольку Apache использует структуру на основе потоков, владельцы веб-сайтов с интенсивным трафиком могут столкнуться с проблемами производительности. Nginx — один из веб-серверов, решающих проблему c10k, и, вероятно, самый успешный из них.
  2. Nginx имеет архитектуру, управляемую событиями, которая не создает новый процесс для каждого запроса. Вместо этого он обрабатывает каждый входящий запрос в одном потоке. Этот главный процесс управляет несколькими рабочими процессами, которые выполняют фактическую обработку запросов.Модель Nginx, основанная на событиях, эффективно распределяет пользовательские запросы между рабочими процессами, что обеспечивает гораздо лучшую масштабируемость.
  3. Если вам нужно управлять веб-сайтом с высоким трафиком, Nginx — отличный выбор, поскольку он может делать это с минимальными затратами ресурсов. Не может быть совпадением, что его используют многие популярные веб-сайты, такие как Netflix, Hulu, Pinterest и Airbnb.
  4. Тем не менее, для малых и средних игроков Apache имеет ряд преимуществ перед Nginx, таких как простая конфигурация, множество модулей и удобная для новичков среда.

Apache vs.

Tomcat

Tomcat — это веб-сервер, также разработанный Apache Software Foundation, поэтому его официальное название — Apache Tomcat. Это также HTTP-сервер, однако он поддерживает приложения Java, а не статические веб-сайты. Tomcat может запускать несколько различных спецификаций Java, таких как Java Servlet, JavaServer Pages (JSP), Java EL и WebSocket.

  1. Tomcat был создан специально для приложений Java, а Apache — это HTTP-сервер общего назначения.Вы можете использовать Apache вместе с разными языками программирования (PHP, Python, Perl и т. Д.) С помощью соответствующего модуля Apache (mod_php, mod_python, mod_perl и т. Д.).
  2. Хотя сервер Tomcat можно использовать и для обслуживания статических веб-страниц, он менее эффективен для этой цели по сравнению с сервером Apache. Например, Tomcat предварительно загружает виртуальную машину Java и другие библиотеки, связанные с Java, которые вам не понадобятся на большинстве веб-сайтов.
  3. Tomcat также менее настраиваем по сравнению с другими веб-серверами. Например, для запуска WordPress лучшим выбором будет HTTP-сервер общего назначения, такой как Apache или NGINX.

Apache За и против

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

Плюсы :

  1. С открытым исходным кодом и бесплатно, даже для коммерческого использования.
  2. Надежное, стабильное программное обеспечение.
  3. Часто обновляемые регулярные исправления безопасности.
  4. Гибкость благодаря модульной структуре.
  5. Простота настройки, удобство для новичков.
  6. Кросс-платформенный (работает как на серверах Unix, так и на Windows).
  7. Работает «из коробки» с сайтами WordPress.
  8. Огромное сообщество и доступная поддержка в случае возникновения каких-либо проблем.

Минусы :

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

Дополнительная информация

Хотите узнать больше об основах хостинга и разработки веб-сайтов? Ознакомьтесь с этими руководствами:

Итак, что такое Apache?

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

Вы можете установить веб-сайт WordPress на веб-сервер Apache без каких-либо настроек.Кроме того, Apache без проблем работает со многими другими системами управления контентом (Joomla, Drupal и т. Д.), Веб-фреймворками (Django, Laravel и т. Д.) И языками программирования. Это делает его отличным выбором для всех типов платформ веб-хостинга, таких как VPS или виртуальный хостинг.

Что такое веб-сервер Apache? Что это такое и как работает

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

Некоторые известные компании, использующие Apache, включают Cisco, IBM, Salesforce, General Electric, Adobe, VMware, Xerox, LinkedIn, Facebook, Hewlett-Packard, AT&T, Siemens, eBay и многие другие (источник).

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

Поскольку Apache не работает так же хорошо в некоторых тестах, особенно для статических веб-сайтов или веб-сайтов с высоким трафиком, Kinsta использует веб-сервер NGINX вместо Apache. Хотя NGINX не существует так давно, как Apache, его популярность и доля на рынке быстро выросли с момента его запуска в 2004 году.

Как работает Apache? Основные сведения о веб-сервере

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

Веб-сервер Apache имеет модули, которые добавляют дополнительные функции к его программному обеспечению, такие как MPM (для обработки режимов многопроцессорности) или mod_ssl для включения поддержки SSL v3 и TLS (рекомендуемая литература: TLS vs SSL). Некоторые общие функции Apache включают:

  • .htaccess
  • IPv6
  • FTP
  • HTTP / 2
  • Perl, Lua и PHP
  • Регулировка полосы пропускания
  • WebDAV
  • Балансировка нагрузки
  • Перезапись URL
  • Отслеживание сеанса
  • Геолокация на основе IP-адреса

Хотя веб-сервер является неотъемлемой частью любого веб-сайта, важно отметить, что обычные пользователи WordPress вряд ли будут большую часть времени напрямую взаимодействовать со своим веб-сервером.

Статистика использования Apache и Nginx

Если вы посмотрите на каждый веб-сайт в Интернете, Apache — самый популярный веб-сервер. По данным W3Techs, он поддерживает 47% веб-сайтов с известным веб-сервером.

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

  • 27,1% из 100 000 самых популярных сайтов
  • 21,5% из 10 000 самых популярных сайтов
  • 16,2% из 1000 самых популярных сайтов

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

И наоборот, NGINX, веб-сервер, который использует Kinsta, используется большинством сайтов с высоким трафиком, включая:

  • 56,1% из 100 000 самых популярных сайтов
  • 63,2% из 10 000 самых популярных сайтов
  • 57% из 1000 самых популярных сайтов

Если вы посмотрите тенденции поиска в Google с 2004 года, то увидите, что эта тенденция проявляется там, где популярность Apache ( как поисковый запрос ) снижается, а популярность NGINX растет.

Apache и NGINX Результаты Google Trends с 2004 г.

Как проверить, какой веб-сервер вы используете

Если вы хотите узнать, используете ли вы Apache или NGINX, вы можете часто (но не всегда) просматривать HTTP-заголовок вашего сайта.

Чтобы просмотреть HTTP-заголовок своего сайта, вы можете:

  • Используйте вкладку Сеть инструментов разработчика Chrome
  • Используйте такой инструмент, как Pingdom или GTmetrix

HTTP-заголовок Apache

Однако этот метод может не работать, если вы используете такую ​​службу, как Cloudflare.

Apache и логотип Apache с пером являются товарными знаками Apache Software Foundation.


Если вам понравилось это руководство, то вам понравится наша поддержка.Все планы хостинга Kinsta включают круглосуточную поддержку наших опытных разработчиков и инженеров WordPress. Общайтесь с той же командой, которая поддерживает наших клиентов из списка Fortune 500. Ознакомьтесь с нашими тарифами

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

Я уже много лет размещаю собственные веб-сайты. После перехода с OS / 2 на Linux более 20 лет назад я использовал Apache в качестве серверного программного обеспечения. Apache надежен, хорошо известен и довольно прост в настройке для базовой установки. На самом деле это не так уж сложно настроить для более сложной настройки, такой как несколько веб-сайтов.

Установка и настройка веб-сервера Apache должны выполняться от имени пользователя root. Настроить брандмауэр также нужно с правами root. Использование браузера для просмотра результатов этой работы должно выполняться как пользователь без полномочий root. (Я использую пользователя student на моем виртуальном хосте.)

Установка

Примечание. Эта статья была обновлена ​​с использованием Fedora 33 с Apache 2.4.46. Если вы используете другой дистрибутив или другую версию Fedora, ваши команды, а также расположение и содержимое файлов конфигурации могут отличаться. Однако строки конфигурации, которые вам нужно изменить, одинаковы независимо от распределения.

Веб-сервер Apache прост в установке. С помощью одной команды вы можете установить его и все необходимые зависимости:

  $ dnf установить httpd  

Все файлы конфигурации для Apache находятся в / etc / httpd / conf и /etc/httpd/conf.d . Данные для веб-сайтов, которые вы будете запускать с Apache, по умолчанию расположены в / var / www , но вы можете изменить это, если хотите.

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

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

Сначала найдите время и просмотрите httpd.conf , чтобы ознакомиться с ним. Одна из вещей, которые мне нравятся в версиях большинства конфигурационных файлов Red Hat, — это количество комментариев, описывающих различные разделы и директивы конфигурации в файлах. Файл httpd.conf не является исключением, поскольку он довольно хорошо прокомментирован. Используйте эти комментарии, чтобы понять, что настраивает файл.

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

  Слушайте 127.0.0.1:80  

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

Директива DocumentRoot определяет расположение файлов HTML, составляющих страницы веб-сайта.Эту линию не нужно изменять, потому что она уже указывает на стандартное местоположение. Строка должна выглядеть так:

  DocumentRoot "/ var / www / html"  

RPM установки Apache создает дерево каталогов / var / www . Если вы хотите изменить место, где хранятся файлы веб-сайта, этот элемент конфигурации используется для этого. Например, вы можете захотеть использовать другое имя для подкаталога www , чтобы сделать идентификацию веб-сайта более явной.Это может выглядеть так:

  DocumentRoot "/ var / mywebsite / html"  

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

Однако необходимо еще одно изменение: открыть порт 80 в нашем брандмауэре. Я использую iptables в качестве брандмауэра, поэтому я изменяю / etc / sysconfig / iptables , чтобы добавить оператор, разрешающий протокол HTTP.Весь файл выглядит так:

 

# пример конфигурации для службы iptables
# вы можете изменить это вручную или использовать system-config-firewall
# пожалуйста, не просите нас добавлять дополнительные порты / службы к этой конфигурации по умолчанию
* filter
: INPUT ACCEPT [0: 0 ]
: FORWARD ACCEPT [0: 0]
: OUTPUT ACCEPT [0: 0]
-A INPUT -m состояние --state RELATED, ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT - i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host -hibited
-A FORWARD -j REJECT --reject-with icmp-host -hibited
COMMIT

Добавленная мной строка является третьей снизу, которая разрешает входящий трафик на порт 80. Теперь я перезагружаю измененную конфигурацию iptables.

  [root @ testvm1 ~] # cd / etc / sysconfig /; iptables-восстановление iptables  

Создайте файл index.html

Файл index.html — это файл по умолчанию, который веб-сервер будет обслуживать, когда вы заходите на сайт, используя только имя домена, а не конкретное имя файла HTML. В каталоге / var / www / html создайте файл с именем index.html . Добавьте содержимое Hello World .Вам не нужно добавлять какую-либо разметку HTML, чтобы это работало. Единственная задача веб-сервера — обслуживать поток текстовых данных, и сервер не знает, какая это дата и как ее отобразить. Он просто передает поток данных запрашивающему хосту.

После сохранения файла установите право собственности на apache.apache .

  [root @ testvm1 html] # chown apache.apache index.html  

Запустите Apache

Apache запустить очень просто. Текущие версии Fedora используют systemd .Выполните следующие команды, чтобы запустить его, а затем проверить состояние сервера:

 [root @ testvm1 ~] # systemctl start httpd 
[root @ testvm1 ~] # статус systemctl httpd
● httpd.service - HTTP-сервер Apache
Загружено: загружено (/usr/lib/systemd/system/httpd.service; отключено; предустановка поставщика: отключено)
Активен: активен (работает) с чт 2018-02-08 13:18:54 EST; 5с назад
Документы: мужчина: httpd.service (8)
Основной PID: 27107 (httpd)
Статус: «Обработка запросов... "
Задач: 213 (лимит: 4915)
CGroup: /system.slice/httpd.service
├─27107 / usr / sbin / httpd -DFOREGROUND
├─27108 / usr / sbin / httpd -DFOREGROUND
├─27109 / usr / sbin / httpd -DFOREGROUND
├─27110 / usr / sbin / httpd -DFOREGROUND
└─27111 / usr / sbin / httpd -DFOREGROUND

8 февраля, 13:18:54 testvm1 systemd [1]: Запуск HTTP-сервера Apache ...
8 февраля 13:18:54 testvm1 systemd [1]: Запуск Apache HTTP-сервер.

На вашем сервере команды могут отличаться. В системах Linux, которые используют сценарии запуска SystemV, команды будут:

 

[root @ testvm1 ~] # service httpd start
Запуск httpd: [Пт, 09 фев, 08:18:07 2018] [OK]
[root @ testvm1 ~] # статус httpd службы
httpd (pid 14649) запущен. ..

Если у вас есть веб-браузер, такой как Firefox или Chrome, на вашем хосте, вы можете использовать URL-адрес localhost в строке URL-адреса браузера, чтобы отобразить свою веб-страницу, даже если она есть.Вы также можете использовать веб-браузер в текстовом режиме, например Lynx, для просмотра веб-страницы. Сначала установите Lynx (если он еще не установлен).

  [root @ testvm1 ~] # dnf -y install lynx  

Затем используйте следующую команду для отображения веб-страницы.

  [root @ testvm1 ~] # lynx localhost  

Результат выглядит так в моем терминальном сеансе. Я удалил много пустого места на странице.

 Hello World 

Команды: используйте клавиши со стрелками для перемещения, '?' для помощи, 'q', чтобы выйти, '<-', чтобы вернуться.
Клавиши со стрелками: вверх и вниз для перемещения. Право перехода по ссылке; Осталось вернуться.
H) elp O) ptions P) rint G) o M) на экране Q) uit / = поиск [удалить] = список истории

Затем отредактируйте файл index.html и добавьте немного разметки HTML, чтобы он выглядел так:

   

Привет, мир

Теперь обновите браузер. Для Lynx используйте комбинацию клавиш Ctrl + R. Результаты выглядят немного иначе. Текст в цвете, так Lynx отображает заголовки, если ваш терминал поддерживает цвет, и теперь он центрирован.В браузере с графическим интерфейсом текст будет крупным шрифтом.

 Hello World 

Команды: используйте клавиши со стрелками для перемещения, '?' для помощи, 'q', чтобы выйти, '<-', чтобы вернуться.
Клавиши со стрелками: вверх и вниз для перемещения. Право перехода по ссылке; Осталось вернуться.
H) elp O) ptions P) rint G) o M) на экране Q) uit / = поиск [удалить] = список истории

Прощальные мысли

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

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

Эта статья была первоначально опубликована в 2018 году и была обновлена ​​редактором.

Apache Lounge




Поддерживать сервер в сети

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

Пожертвование является вкладом в покрытие затрат, времени и усилий, затрачиваемых на этот сайт и строительство. Спасибо! Steffen Ваши пожертвования помогут поддерживать этот сайт в рабочем состоянии и продолжать создавать бинарные файлы. Apache Lounge не спонсируется.
Apache Lounge — это все о веб-сервере Apache, предоставляемом серверным проектом HTTPD Apache Software Foundation (ASF).Apache Lounge предоставляет современные двоичные файлы Windows и популярные сторонние модули уже более 15 лет. У нас сотни тысяч довольных пользователей: как в малых, так и в крупных компаниях, а также домашние пользователи.

Присоединяйтесь к нашему постоянно растущему форуму сообщества пользователей и разговаривайте с другими веб-мастерами и программистами, которые работают вместе и учатся на опыте друг друга с сервером Apache HTTPD. Хотя форум предназначен в первую очередь для сред Windows, он также посвящен Apache в целом.Приветствуются все вкусы, такие как Linux, Mac и Raspberry.

Пожалуйста, помогите собратьям-апачейцам и поделитесь своими знаниями. Спасибо! Указатель форума
Посты Последнее сообщение
Новости и видеовстречи
Новости, объявления и все остальное, что не подходит для форумов ниже. Отзывы на сайте, случайные разговоры, что угодно, приветствуются. Общий чат о чем угодно, хорошее место, чтобы представиться и поздороваться, рассказать анекдот или просто расслабиться.
1616
Чт 18 фев ’21 12:10
Штеффен
Apache
Нужна помощь или есть вопросы по серверу Apache? Поместите их сюда, не вопрос слишком простой! И, пожалуйста, помогите собратьям-апачейцам. Здесь идет 2.2, а также 2.4. О строительстве см. Ниже.
20273
Вт 23 фев ’21 14:57
ApacheUser1212123
Сторонние модули
Здесь можно обсудить сторонние модули, такие как mod_security, mod_jk и т. Д.
4029
Вт 09 фев ’21 20:53
Джеймс Блонд
Другое программное обеспечение
Обсудите установку и проблемы с другим программным обеспечением, таким как Perl, Php, Mysql, Tomcat и т. Д. Например, здесь можно установить PHP под Apache, а также установить CMS, такую ​​как Joomla, WordPress, форум, такой как phpBB и т. Д. Для программирования / кодирования см. Форум ниже.
5703
Вт 16 фев ’21 22:29
Янв-E
Уголок кодирования и написания сценариев
Форум для обсуждения программирования на Perl, PHP, HTML, JavaScript, Ajax и т. Д.
Также, если вы создали / используете скрипт, которым хотите поделиться, опубликуйте его здесь.
1138
Вс 31 янв ’21 15:57
mraddi
Практические инструкции, документация и советы
Не стесняйтесь размещать свои знания! Не размещайте здесь вопросы.
508
Вт 16 фев ’21 21:04
касательная
Загрузки для зданий и участников
Здесь можно обсудить написание, компиляцию, отладку, тестирование и эксперименты с исходным кодом Apache и модулей. Сюда также входит создание другого программного обеспечения, такого как php.
Также здесь находятся сборки Apache и Modules, которые можно загрузить у участников Apachelounge.
3618
Чт 18 фев ’21 11:38
Янв-E
Инструменты и утилиты для веб-мастеров
Обсудите инструменты и утилиты для веб-мастеров, такие как статистика, мониторинг, анализаторы файлов журналов, интерфейс администратора и т. Д.
Если у вас есть / знаете / создали инструмент, сообщите нам об этом здесь.
301
Вт, 09 фев ’21 20:56
Джеймс Блонд
Оборудование и сети
Здесь можно обсудить оборудование и сеть.
651
Пн 07 мая ’18 10:46
Джеймс Блонд


Недавние обсуждения

Статистика
14925 пользователей опубликовали в общей сложности 37837 сообщений

Последний зарегистрированный пользователь alwin

Всего сейчас 19 пользователей: 0 зарегистрированных и 19 гостей

Веб-сервер Apache.

Apache — наиболее широко используемый Интернет… | автор: Sanjeev Gautam

Apache — это наиболее широко используемое программное обеспечение для веб-серверов. Apache — это бесплатное программное обеспечение с открытым исходным кодом, разработанное и поддерживаемое Apache Software Foundation. Он работает на 67% всех веб-серверов в мире. Это быстро, надежно и безопасно. Его можно настроить для удовлетворения потребностей множества различных сред с помощью расширений и модулей.

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

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

  • Сервер Apache — это бесплатный веб-сервер с открытым исходным кодом.
  • Его можно установить во всех операционных системах, таких как Linux, Windows, Unix, FreeBSD, Solaris, Mac OS X и т. Д.
  • Это мощный, гибкий веб-сервер, совместимый с HTTP / 1.1.
  • Этот сервер легко настраивается и расширяется с помощью сторонних модулей.
  • Он предоставляет полный исходный код и поставляется с неограниченной лицензией.
  • Apache поддерживает некоторые возможности, такие как CGI (общий интерфейс шлюза) и SSI (включая серверную часть), перенаправление URL, поддержка модулей загрузки, аутентификация пользователей, возможности кэширования прокси и т. Д.

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

# apt-get install apache2

version oy apache2 server

После установки мы проверяем, включен или не включен веб-сервер с помощью systemctl enable apache2

apache 2 находится в рабочем состоянии

мы можем проверить с помощью браузера http: / /192. 168.1.110/ Загружается страница по умолчанию

apache2.

После установки проверьте каталог / etc / apache2

структуру / etc / apache2

Файлы конфигурации Описание

Содержимое

  • / var / www / html : Фактическое веб-содержимое, которое default состоит только из страницы Apache по умолчанию, которую мы видели ранее, обслуживается из каталога / var / www / html.Это можно изменить, изменив файлы конфигурации Apache.

Конфигурация сервера

  • / etc / apache2 : Каталог конфигурации Apache. Здесь находятся все файлы конфигурации Apache.
  • /etc/apache2/apache2.conf : основной файл конфигурации Apache. Это можно изменить, чтобы внести изменения в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации.
  • /etc/apache2/ports. conf : Этот файл определяет порты, которые Apache будет прослушивать. По умолчанию Apache прослушивает порт 80 и дополнительно прослушивает порт 443, когда включен модуль, обеспечивающий возможности SSL.
  • / etc / apache2 / sites-available: Каталог, в котором могут храниться «виртуальные хосты» для каждого сайта. Apache не будет использовать файлы конфигурации, найденные в этом каталоге, если они не связаны с каталогом с поддержкой сайтов .Как правило, вся конфигурация серверных блоков выполняется в этом каталоге, а затем включается путем связывания с другим каталогом с помощью команды a2ensite .
  • / etc / apache2 / sites-enable : каталог, в котором хранятся разрешенные для каждого сайта «виртуальные хосты». Обычно они создаются путем связывания с файлами конфигурации, находящимися в каталоге sites-available , с помощью a2ensites . Apache считывает файлы конфигурации и ссылки, найденные в этом каталоге, при запуске или перезагрузке для компиляции полной конфигурации.
  • / etc / apache2 / conf-available , / etc / apache2 / conf-enabled : эти каталоги имеют те же отношения, что и каталоги , доступные для сайтов и , доступные для сайтов , но используются для хранения фрагменты конфигурации, которые не принадлежат виртуальному хосту. Файлы в каталоге conf-availabl e можно включить с помощью команды a2enconf и отключить с помощью команды a2disconf .
  • / etc / apache2 / mods-available , / etc / apache2 / mods-enabled : Эти каталоги содержат доступные и включенные модули соответственно.Файлы, оканчивающиеся на .load , содержат фрагменты для загрузки определенных модулей, а файлы, заканчивающиеся на .conf , содержат конфигурацию для этих модулей. Модули можно включать и отключать с помощью команд a2enmod и a2dismod .

Журналы сервера

  • /var/log/apache2/access.log : по умолчанию каждый запрос к вашему веб-серверу записывается в этот файл журнала, если Apache не настроен на иное.
  • /var/log/apache2/error.log : По умолчанию все ошибки записываются в этот файл. Директива LogLevel в конфигурации Apache указывает, насколько подробно будут содержаться журналы ошибок.

мы можем настроить SSL, используя

vim /etc/apache2/sites-available/default-ssl.conf

Чтобы изменить сценарий CGI сервера, мы можем изменить, используя

vim / etc / apache2 / conf-available / serve-cgi-bin.conf

Директивы конфигурации в apache2.conf

Основные сведения о конфигурации для вашего сервера Apache содержатся в файле « /etc/apache2/apache2.conf ».

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

В Ubuntu и Debian большая часть файла предназначена для глобальных определений, а конфигурация сервера по умолчанию и виртуальных хостов обрабатывается в конце с помощью директивы «Include…».

Есть несколько различных операторов «Включить». Эти определения загрузочного модуля, документ ports.conf , конкретные файлы конфигурации в каталоге « conf.d / » и, наконец, определения виртуального хоста в каталоге « sites-enabled / ».

Раздел глобальной конфигурации

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

Тайм-аут: По умолчанию для этого параметра установлено значение «300», что означает, что у сервера есть максимум 300 секунд для выполнения каждого запроса.Вероятно, это слишком много для большинства настроек, и его можно безопасно снизить до значения от 30 до 60 секунд.

KeepAlive: Если этот параметр установлен на «Вкл. », Каждое соединение будет оставаться открытым для обработки нескольких запросов от одного и того же клиента. Если для этого параметра установлено значение «Выкл.», Каждый запрос должен будет устанавливать новое соединение, что может привести к значительным накладным расходам в зависимости от ваших настроек и ситуации с трафиком.

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

Конфигурация MPM: определяет конфигурацию опций MPM (Multi-Processing Module).

apache2 -l

AllowOverride: директива используется для разрешения использования .htaccess на веб-сервере, чтобы разрешить переопределение конфигурации Apache для каждого каталога. … Вот почему это работает только при наличии AllowOverride All, потому что вы указываете веб-серверу разрешить использование файла. htaccess, который использует CI.

Изучение файла виртуального хоста по умолчанию

# sudo vim /etc/apache2/sites-available/000-default.conf

Виртуальный хост по умолчанию настроен для обработки любого запроса на порт 80, стандартный порт http. Это определено в заголовке объявления, где написано «*: 80», что означает порт 80 на любом интерфейсе.

Параметр «DocumentRoot» указывает, где будет располагаться контент, запрашиваемый для этого виртуального хоста.Виртуальный хост по умолчанию настроен для обслуживания контента из каталога «/ var / www» в Ubuntu.

Включение сайтов и модулей в Apache

Для автоматического создания символической ссылки в каталоге «сайты с поддержкой» на существующий файл в каталоге «сайты доступны», введите следующую команду:

# a2ensite Vitual_Host_FileName

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

# systemctl restart apache2

Модули можно включить или отключить с помощью “ a2enmod » и « a2dismod » соответственно. Они работают так же, как и «сайт» версии этих команд.

Лабораторная секция для настройки собственного веб-сайта

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

Здесь мы создаем sanjeev-apache.conf на доступном сайте, и мы должны создать символическую ссылку для него в каталоге с поддержкой сайтов.

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

# systemctl reload apache2

После перезагрузки в службу apache2 символическая ссылка начинает работать.Виртуальный хост

, созданный для sanjeev-apache.net, корневой файл документа в / var / www / test

Сделайте запись в / etc / hosts для локального преобразования IP-адреса в имя домена

Запись имени хоста в / etc / hosts

Теперь проверьте то же самое, используя http://sanjeev-apache.net/

.htaccess

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

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

, мы также можем создать файл .htaccess с помощью текстового редактора, такого как vim, gedit. пример:

Для активации файла .htaccess

Для активации.htaccess, мы должны изменить настройку AllowOveride на все, как показано ниже.

Пять общих применений файла .htaccess Page

  1. Mod_Rewrite: Одним из наиболее полезных аспектов файла . htaccess является mod_rewrite. Вы можете использовать пространство в файле .htaccess для обозначения и изменения способа отображения URL-адресов и веб-страниц на ваших сайтах для пользователей.
  2. Аутентификация : Хотя для использования файла .htaccess не требуется столько прав, сколько для доступа к apache2.conf, мы все равно можем вносить эффективные изменения на сайт. После такого изменения потребуется пароль для доступа к определенным разделам веб-страницы.

Пароли .htaccess хранятся в файле с именем .htpasswd. Идите вперед и создайте и сохраните этот файл, обязательно храня его где-нибудь, кроме веб-каталога, по соображениям безопасности.

Вы должны использовать пространство внутри файла .htpasswd для записи имен и паролей всех пользователей, которым вы хотите иметь доступ к защищенной части сайта.

Вы можете использовать этот полезный сайт для генерации пары имени пользователя и зашифрованного пароля. Если имя вашего авторизованного пользователя — jsmith , а пароль — «awesome» , пара будет выглядеть так: jsmith: VtweQU73iyETM . Вы можете вставить сколько угодно строк в файл .htpasswd, но убедитесь, что каждый пользователь получает свою строку.

  • AuthUserFile: В этой строке указывается серверный путь к файлу .htpasswd.
  • AuthGroupFile: Эта строка может использоваться для передачи местоположения файла.htgroup. Поскольку мы не создавали такой файл, мы можем оставить / dev / null на месте.
  • AuthName: Это текст, который будет отображаться при запросе пароля. Сюда можно положить что угодно.
  • AuthType: Это относится к типу аутентификации, который будет использоваться для проверки паролей. Пароли проверяются через HTTP, ключевое слово Basic менять не следует.
  • Требовать действительного пользователя: Эта строка представляет одну из двух возможностей. «Требовать действительного пользователя», — сообщает сайт.htaccess, что есть несколько человек, которые должны иметь возможность войти в защищенную паролем область. Другой вариант — использовать фразу «требовать пользователя имя пользователя » для указания конкретного разрешенного лица.

3. Пользовательские страницы ошибок : файл .htaccess дополнительно позволяет создавать пользовательские страницы ошибок для вашего сайта. Вот некоторые из наиболее распространенных ошибок:

  • 400 Неверный запрос
  • 401 Требуется авторизация
  • 403 Запрещена страница
  • 404 Файл не найден
  • 500 Внутренняя ошибка

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

В этом руководстве я собираюсь создать страницу 404. Однако вы можете заменить эту ошибку на все, что захотите:

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

ErrorDocument 404 /new404.html

Имейте в виду, что Apache ищет страницы 404, расположенные в корне сайта. Если вы поместили новую страницу с ошибкой в ​​более глубокий подкаталог, вам необходимо включить ее в строку, чтобы она выглядела примерно так:

ErrorDocument 404 / error_pages / new404.html

4. Типы MIME: В случаях, когда на вашем сайте есть некоторые файлы приложений, для доставки которых ваш сервер не настроен, вы можете добавить типы MIME на свой сервер Apache в файле .htaccess с помощью следующего кода.

AddType audio / mp4a-latm .m4a

Не забудьте заменить приложение и расширение файла на Mime Type, который вы хотите поддерживать.

5. SSI : Server Side Includes — отличная экономия времени на веб-сайте.Одно из наиболее распространенных применений SSI — обновление большого количества страниц некоторыми конкретными данными без необходимости обновлять каждую страницу по отдельности (например, если вы хотите изменить цитату внизу страницы).

Чтобы включить SSI, введите следующий код в файл .htaccess.

AddType text / html .shtml
AddHandler, анализируемый сервером .shtml

Эти три строки сообщают .htaccess, что файлы .shtml действительны, а вторая строка специально заставляет сервер анализировать все файлы кончающийся на .shtml для любых команд SSI.

Однако, если у вас много страниц .html, которые вы не хотите переименовывать с помощью расширений .shtml, вы можете использовать другую тактику для анализа их на наличие команд SSI — XBitHack.

Добавление этой строки в файл .htaccess заставляет Apache проверять все файлы html с соответствующими разрешениями для включения на стороне сервера.

XBitHack на

Чтобы сделать страницу подходящей для XBitHack, используйте эту команду:

chmod + x pagename.html

Еще несколько директив конфигурации в httpd.conf

AccessFileName

AccessFileName именует файл, который сервер должен использовать для информации управления доступом в каждом каталоге. По умолчанию — .htaccess.

Сразу после директивы AccessFileName набор тегов Files применяет управление доступом к любому файлу, имя которого начинается с .ht.

Action

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

AddDescription

При использовании FancyIndexing в качестве параметра IndexOptions директива AddDescription может использоваться для отображения заданных пользователем описаний для определенных файлов или типов файлов в списке каталогов, созданном сервером.

AddEncoding

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

AddHandler

AddHandler сопоставляет расширения файлов с конкретными обработчиками. Например, обработчику cgi-сценария можно сопоставить расширение .cgi, чтобы автоматически обрабатывать файл, заканчивающийся на .cgi, как сценарий CGI. Ниже приведен пример директивы AddHandler для расширения .cgi.

  AddHandler cgi-script .cgi  

Эта директива позволяет CGI за пределами cgi-bin функционировать в любом каталоге на сервере, который имеет параметр ExecCGI в контейнере каталогов.

Помимо сценариев CGI, директива AddHandler используется для обработки анализируемых сервером файлов HTML и файлов карты изображений.

AddLanguage

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

AddType

Используйте директиву AddType, чтобы определить или переопределить пары типа MIME и расширения файла по умолчанию. В следующем примере директива указывает HTTP-серверу Apache распознавать расширение файла .tgz:

  AddType application / x-tar .tgz  

Allow

Allow указывает, какой клиент может получить доступ к данному каталогу. Клиентом может быть все, имя домена, IP-адрес, частичный IP-адрес, пара сеть / маска сети и т. Д. Каталог DocumentRoot настроен на разрешение запросов от всех, то есть доступ есть у всех.

AllowOverride

Директива AllowOverride устанавливает, можно ли переопределить какие-либо параметры с помощью объявлений в .htaccess файл. По умолчанию и корневой каталог, и DocumentRoot не допускают переопределения .htaccess.

BrowserMatch

Директива BrowserMatch позволяет серверу определять переменные среды и предпринимать соответствующие действия на основе поля HTTP-заголовка User-Agent, которое определяет тип веб-браузера клиента. По умолчанию веб-сервер использует BrowserMatch для запрета подключений к определенным браузерам с известными проблемами, а также для отключения сообщений поддержки активности и сброса заголовков HTTP для браузеров, которые, как известно, имеют проблемы с этими действиями.

Директивы кэширования

Однако ниже приводится список некоторых наиболее важных директив, связанных с кешем.

  • CacheEnable — Указывает, является ли кэш диском, памятью или кешем файлового дескриптора. По умолчанию CacheEnable настраивает дисковый кеш для URL-адресов в /.
  • CacheRoot — Задает имя каталога, содержащего кэшированные файлы. CacheRoot по умолчанию — это каталог / var / httpd / proxy /.
  • CacheSize — Определяет, сколько места кэш может использовать в килобайтах.Размер CacheSize по умолчанию — 5 КБ.

Ниже приводится список некоторых других общих директив, связанных с кешем.

  • CacheMaxExpire — определяет, как долго HTML-документы хранятся (без перезагрузки с исходного веб-сервера) в кэше. По умолчанию — 24 часа (86400 секунд).
  • C acheDefaultExpire — указывает время истечения срока действия в часах для документа, полученного с использованием протокола, который не поддерживает время истечения срока действия. По умолчанию установлен 1 час (3600 секунд).
  • NoProxy — Задает разделенный пробелами список подсетей, IP-адресов, доменов или хостов, содержимое которых не кэшируется. Этот параметр наиболее полезен для сайтов интрасети.

CacheNegotiatedDocs

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

CustomLog

CustomLog определяет файл журнала и формат файла журнала. По умолчанию журнал доступа записывается в файл /var/log/apache2/access.log , а ошибки записываются в файл /var/log/apache2/error.log .

Формат CustomLog по умолчанию — это комбинированный формат файла журнала, как показано здесь:

   remotehost rfc931 дата пользователя, «запрос», байты состояния, агент пользователя реферера   

DefaultType

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

Запретить

Запретить работает аналогично разрешению, за исключением того, что он указывает, кому запрещен доступ. DocumentRoot по умолчанию не настроен на отклонение запросов от кого-либо.

Directory

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

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

Контейнер Directory может также использоваться для настройки дополнительных каталогов cgi-bin для серверных приложений вне каталога, указанного в директиве ScriptAlias ​​.

Для этого контейнер каталога должен установить параметр ExecCGI для этого каталога.

Например, если сценарии CGI расположены в / home / my_cgi_directory, добавьте следующий контейнер Directory в файл httpd.conf:

   Options + ExecCGI   

Далее, директиву AddHandler необходимо раскомментировать, чтобы идентифицировать файлы с расширением .cgi как сценарии CGI.

DirectoryIndex

DirectoryIndex — это страница по умолчанию, обслуживаемая сервером, когда пользователь запрашивает индекс каталога, указав косую черту (/) в конце имени каталога.

Когда пользователь запрашивает страницу http: // example / this_directory /, он получает либо страницу DirectoryIndex, если она существует, либо созданный сервером список каталогов. Значение по умолчанию для DirectoryIndex — index.html. Сервер пытается найти любой из этих файлов и возвращает первый найденный. Если он не находит один из этих файлов и для этого каталога установлен параметр Индексы , сервер генерирует и возвращает список в формате HTML подкаталогов и файлов в каталоге, если только функция списка каталогов не отключена.

DocumentRoot

DocumentRoot — это каталог, который содержит большинство файлов HTML, обслуживаемых в ответ на запросы. DocumentRoot по умолчанию как для незащищенных, так и для защищенных веб-серверов — это каталог / var / www / html. Например, сервер может получить запрос на следующий документ:

  http://sanjeev-apache.net/  

Сервер ищет следующий файл в каталоге по умолчанию:

  / var / www / html / index.html  

ErrorDocument

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

HostnameLookups

HostnameLookups можно включить, выключить или удвоить. Если для HostnameLookups установлено значение on, сервер автоматически разрешает IP-адрес для каждого соединения.Разрешение IP-адреса означает, что сервер устанавливает одно или несколько подключений к DNS-серверу, что увеличивает накладные расходы на обработку. Если для HostnameLookups задано значение double, сервер выполняет двойной обратный поиск DNS, добавляя еще больше накладных расходов на обработку.

Для экономии ресурсов на сервере HostnameLookups по умолчанию отключен.

IfModule

Теги и создают условный контейнер, который активируется только при загрузке указанного модуля.Директивы в контейнере IfModule обрабатываются при одном из двух условий. Директивы обрабатываются, если загружен модуль, содержащийся в начальном теге . Или, если восклицательный знак! появляется перед именем модуля, директивы обрабатываются, только если модуль, указанный в теге , является , а не загруженным .

Включить

Включить позволяет включать другие файлы конфигурации во время выполнения.

Путь к этим файлам конфигурации может быть абсолютным или относительным относительно ServerRoot.

Чтобы сервер мог использовать индивидуально упакованные модули, такие как mod_ssl, mod_perl и php, в раздел 1: Глобальная среда apache2.conf должна быть включена следующая директива:

  Include conf.d / *. Conf  

IndexIgnore

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

LanguagePriority

LanguagePriority устанавливает приоритет для разных языков, если в клиентском веб-браузере не заданы языковые предпочтения.

Listen

Команда Listen определяет порты, на которых веб-сервер принимает входящие запросы. По умолчанию HTTP-сервер Apache настроен на прослушивание порта 80 для незащищенных веб-коммуникаций и (в файле ssl.conf, который определяет любые защищенные серверы) на порт 443 для безопасных веб-коммуникаций.

Если HTTP-сервер Apache настроен на прослушивание порта ниже 1024, только пользователь root может запустить его. Для порта 1024 и выше httpd можно запустить как обычный пользователь.

Директива Listen также может использоваться для указания конкретных IP-адресов, по которым сервер принимает соединения.

Местоположение

Теги и создают контейнер, в котором можно указать управление доступом на основе URL-адреса.

Например, чтобы разрешить людям, подключающимся из домена сервера, видеть отчеты о состоянии, используйте следующие директивы:

   
SetHandler server-status
Order deny, allow
Deny from all
Allow из <. sanjeev-apache.net>

Замените <.sanjeev-apache.net> именем домена второго уровня для веб-сервера.

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

   
SetHandler server-info
Order deny, allow
Deny from все
Разрешить от <.example.com>

Снова замените <.sanjeev-apache.net> на доменное имя второго уровня для веб-сервера.

LogFormat

Директива LogFormat настраивает формат различных файлов журналов веб-сервера. Фактический используемый LogFormat зависит от настроек, заданных в директиве CustomLog.

Если для директивы CustomLog задано комбинированное значение, следующие параметры формата:

% h (IP-адрес или имя хоста удаленного хоста)

Перечисляет удаленный IP-адрес запрашивающего клиента. Если для HostnameLookups установлено значение on, имя хоста клиента записывается, если оно не доступно из DNS.

% l (rfc931)

Не используется. Дефис — появляется в файле журнала для этого поля.

% u (аутентифицированный пользователь)

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

% t (дата)

Показывает дату и время запроса.

% r (строка запроса)

Выводит строку запроса точно в том виде, в каком она пришла из браузера или клиента.

% s (статус)

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

% b (байты)

Показывает размер документа.

% \ «% {Referer} i \» (реферер)

Перечисляет URL-адрес веб-страницы, которая направила клиентский хост на веб-сервер.

% \ «% {User-Agent} i \» (user-agent)

Показывает тип веб-браузера, выполняющего запрос.

LogLevel

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

MaxKeepAliveRequests

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

Options

Директива Options определяет, какие функции сервера доступны в конкретном каталоге.Например, в соответствии с ограничительными параметрами, указанными для корневого каталога, Options устанавливается только для директивы FollowSymLinks. Никакие функции не включены, за исключением того, что серверу разрешено переходить по символическим ссылкам в корневом каталоге.

По умолчанию в каталоге DocumentRoot параметры включают в себя индексы и FollowSymLinks. Индексы позволяют серверу генерировать список каталогов для каталога, если не указан DirectoryIndex (например, index.html). FollowSymLinks позволяет серверу переходить по символическим ссылкам в этом каталоге.

Заказ

Директива Order управляет порядком, в котором оцениваются директивы allow и deny. Сервер настроен на оценку директив Allow перед директивами Deny для каталога DocumentRoot.

PidFile

PidFile дает имя файлу, в котором сервер записывает свой идентификатор процесса (PID). По умолчанию PID указан в /var/run/apache2.pid.

Redirect

Когда веб-страница перемещается, Redirect может использоваться для сопоставления расположения файла с новым URL-адресом.Формат следующий:

 Redirect /   <старый-путь>  /  <имя-файла>   http: //     /    /  <имя-файла>   

В этом примере замените <старый-путь> на информацию старого пути для <имя-файла> и <текущий-домен > и с информацией о текущем домене и пути для .

В этом примере любые запросы для <имя-файла> в старом расположении автоматически перенаправляются в новое расположение.

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

ScriptAlias ​​

Директива ScriptAlias ​​определяет расположение сценариев CGI. Как правило, не рекомендуется оставлять сценарии CGI в DocumentRoot, где они потенциально могут быть просмотрены как текстовые документы.По этой причине специальный каталог за пределами каталога DocumentRoot, содержащий исполняемые файлы и сценарии на стороне сервера, обозначается ScriptAliasdirective. Этот каталог известен как cgi-bin и по умолчанию установлен в / var / www / cgi-bin /.

ServerName

ServerName указывает имя хоста и номер порта (соответствующий директиве Listen) для сервера. Имя сервера не обязательно должно совпадать с фактическим именем хоста машины.

Ниже приводится пример директивы ServerName:

 ServerName www.sanjeev-apache.net:80 

При указании ServerName убедитесь, что пара IP-адреса и имени сервера включена в файл / etc / hosts .

ServerRoot

Директива ServerRoot указывает каталог верхнего уровня, содержащий контент веб-сайта. По умолчанию ServerRoot установлен на «/ etc / apache2» как для безопасных, так и для незащищенных серверов.

VirtualHost

Теги и создают контейнер, описывающий характеристики виртуального хоста.Контейнер VirtualHost принимает большинство директив конфигурации.

Контейнер VirtualHost с комментариями предоставляется в apache2.conf, который иллюстрирует минимальный набор директив конфигурации, необходимых для каждого виртуального хоста.


ServerAdmin
[email protected]
ServerName sanjeev-apache. net
ServerAlias ​​
www.sanjeev-apache.net
DocumentRoot / var / www / test /index.html
ErrorLog $ {APACHE_LOG_DIR} / error.log
CustomLog $ {APACHE_LOG_DIR} /access.log в сочетании

Перезаписать URL-адреса с помощью mod_rewrite

Включение mod_rewrite

  sudo a2enmod rewrite  

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

Для включения файла .htaccess в конфигурации нам нужно упомянуть некоторые условия в /etc/apache2/sites-available/sanjeev-apache.net , как показано ниже, а затем выполнить перезапуск службы apache2.

   

Параметры Индексы FollowSymLinks MultiViews
AllowOverride All
Требовать предоставления всех разрешений
. ([A-Za-z0-9] +) / (лето | зима | осень | весна) results.php? item = $ 1 & season = $ 2 [QSA]

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

Добавление условий с помощью логики с помощью RewriteConds

Директива RewriteCond позволяет нам добавлять условия к нашим правилам перезаписи, чтобы контролировать, когда правила будут обрабатываться. Все RewriteConds соответствуют следующему формату:

Общая структура RewriteCond

  RewriteCond TestString Condition [Flags]  
  • RewriteCond определяет директиву RewriteCond .
  • TestString - строка для проверки.
  • Условие - это шаблон или условие для сопоставления.
  • Флаги - это необязательные параметры, которые могут изменять условия и правила оценки.

Если RewriteCond принимает значение «истина», будет рассмотрен следующий за ним RewriteRule . Если этого не произойдет, правило будет отменено.Несколько RewriteCond могут использоваться один за другим, и при поведении по умолчанию все они должны быть истинными, чтобы следующее правило было принято во внимание.

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

vim / var / www / test /.htaccess

Включение необходимых модулей Apache

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

  • mod_proxy , основной модуль прокси-сервера Apache, модуль для перенаправления соединений; он позволяет Apache выступать в качестве шлюза для базовых серверов приложений.
  • mod_proxy_http , который добавляет поддержку проксирования HTTP-соединений.
  • mod_proxy_balancer и mod_lbmethod_byrequests , которые добавляют функции балансировки нагрузки для нескольких внутренних серверов.

Чтобы включить эти четыре модуля, последовательно выполните следующие команды.

  • sudo a2enmod proxy
  • sudo a2enmod proxy_http
  • sudo a2enmod proxy_balancer
  • sudo a2enmod lbmethod_byrequests
  • 9017, чтобы эти изменения вступили в силу.

    • sudo systemctl restart apache2

    Изменение конфигурации по умолчанию для включения обратного прокси

    Пример 1 - Обратное проксирование одиночного внутреннего сервера

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

    /etc/apache2/sites-available/000-default.conf

       
    ProxyPreserveHost On
    ProxyPass / http: // 127. 0.0.1: 8080/
    ProxyPassReverse / http://127.0.0.1:8080/

    Если вы следовали примеру серверов на шаге 2, используйте 127.0.0.1:8080 , как написано в блок выше. Если у вас есть собственные серверы приложений, используйте их адреса.

    Здесь есть три директивы:

    • ProxyPreserveHost заставляет Apache передавать исходный заголовок Host внутреннему серверу.Это полезно, так как позволяет внутреннему серверу знать адрес, используемый для доступа к приложению.
    • ProxyPass - это основная директива конфигурации прокси. В этом случае он указывает, что все, что находится под корневым URL-адресом (/), должно быть сопоставлено с внутренним сервером по данному адресу. Например, если Apache получит запрос на / example , он подключится к http: // your_backend_server / example и вернет ответ исходному клиенту.
    • ProxyPassReverse должен иметь ту же конфигурацию, что и ProxyPass . Он сообщает Apache об изменении заголовков ответов с внутреннего сервера. Это гарантирует, что если внутренний сервер вернет заголовок перенаправления местоположения, браузер клиента будет перенаправлен на адрес прокси, а не на адрес внутреннего сервера, что не будет работать должным образом.

    Чтобы изменения вступили в силу, перезапустите Apache.

    • sudo systemctl restart apache2

    Теперь, если вы открываете http: // your_server_ip в веб-браузере, вы увидите ответ внутреннего сервера вместо стандартной страницы приветствия Apache.Если вы выполнили шаг 2, это означает, что вы увидите Hellow world !.

    Пример 2 - Балансировка нагрузки между несколькими внутренними серверами

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

    Замените все содержимое в блоке VirtualHost следующим, чтобы ваш файл конфигурации выглядел следующим образом:

    / etc / apache2 / sites-available / 000-default.conf

       

    BalancerMember http://127.0.0.1:8080
    BalancerMember http://127.0.0.1:8081
    ProxyPreserveHost On ProxyPass / balancer: // mycluster /
    ProxyPassReverse / balancer: // mycluster /

    Конфигурация аналогична предыдущей, но вместо прямого указания одного внутреннего сервера мы использовали дополнительный блок Proxy для определения нескольких серверов.Блок называется balancer: // mycluster (имя можно свободно изменять) и состоит из одного или нескольких элементов BalancerMember , которые определяют адреса базового внутреннего сервера. Директивы ProxyPass и ProxyPassReverse используют пул балансировщика нагрузки с именем mycluster вместо определенного сервера.

    Если вы следовали примеру серверов на шаге 2, используйте 127.0.0.1: 8080 и 127.0.0.1:8081 для директив BalancerMember , как написано в блоке выше. Если у вас есть собственные серверы приложений, используйте их адреса.

    Создание самозаверяющего сертификата SSL

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

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

    Шаг 1. Создайте сертификат SSL

    # sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout /etc/ssl/private/apache-selfsigned. key -out / etc / ssl / certs / apache-selfsigned.crt

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

    apache-selfsigned.key createdapache-selfsigned.crt created
    • OpenSSL : это основной инструмент командной строки для создания сертификатов, ключей и других файлов OpenSSL и управления ими.
    • req : Эта подкоманда указывает, что мы хотим использовать управление запросом подписи сертификата (CSR) X.509. «X.509» - это стандарт инфраструктуры открытого ключа, которого придерживаются SSL и TLS для управления ключами и сертификатами. Мы хотим создать новый сертификат X.509, поэтому используем эту подкоманду.
    • - x509 : Это дополнительно изменяет предыдущую подкоманду, сообщая утилите, что мы хотим создать самозаверяющий сертификат вместо генерации запроса на подпись сертификата, как это обычно бывает.
    • - узлов : Это говорит OpenSSL пропустить опцию защиты нашего сертификата парольной фразой. Нам нужно, чтобы Apache мог читать файл без вмешательства пользователя при запуске сервера. Парольная фраза предотвратит это, потому что нам придется вводить ее после каждого перезапуска.
    • - дней 365 : этот параметр устанавливает период времени, в течение которого сертификат будет считаться действительным. Мы устанавливаем его здесь на один год.
    • - newkey rsa : 2048 : указывает, что мы хотим сгенерировать новый сертификат и новый ключ одновременно.Мы не создали ключ, необходимый для подписи сертификата на предыдущем шаге, поэтому нам нужно создать его вместе с сертификатом. Часть rsa: 2048 сообщает ему, что нужно создать ключ RSA длиной 2048 бит.
    • - keyout : Эта строка сообщает OpenSSL, где разместить сгенерированный файл закрытого ключа, который мы создаем.
    • - из : Это сообщает OpenSSL, где разместить сертификат, который мы создаем.

    Теперь нам нужно включить / etc / apache2.sites-available / default-ssl.conf с использованием модуля a2ensite и ssl с использованием a2enmod.

    MPM (Multi-Processing Module)

    Apache использует один из следующих MPM (Multi-Processing Module) для обработки входящих запросов и их обработки. У обоих свой рабочий тип. Ниже приведены некоторые основные сведения о MPM и его работе.

    Prefork MPM:

    Prefork MPM запускает несколько дочерних процессов.Каждый дочерний процесс обрабатывает одно соединение за раз.

    Prefork использует большую память по сравнению с рабочим MPM. Prefork - это MPM по умолчанию, используемый сервером Apache2. Preform MPM всегда запускает несколько минимальных (MinSpareServers) определенных процессов как запасных, поэтому новым запросам не нужно ждать запуска нового процесса.

    Worker MPM:

    Worker MPM генерирует несколько дочерних процессов, похожих на prefork. Каждый дочерний процесс запускает множество потоков. Каждый поток обрабатывает одно соединение за раз.

    In sort Worker MPM реализует гибридный многопроцессорный многопоточный сервер. Worker MPM использует меньше памяти по сравнению с Prefork MPM.

    StartServers

    1. Эта директива устанавливает количество потоков, созданных во время запуска.
    2. Количество ниток динамически контролируется в зависимости от нагрузки.

    ThreadPerChild

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

    ThreadLimit

    1. устанавливает верхний предел настраиваемого количества потоков для каждого дочернего процесса.
    2. Если предел потока установлен выше ThreadPerChild, будет выделена дополнительная неиспользуемая общая память.
    3. Если для ThreadLimit и ThreadPerChild задано значение выше, чем может обрабатывать система, Apache может не запуститься или система может стать нестабильной.

    ServerLimit

    1. Верхний предел количества процессов.
    2. Если ServerLimit равен 10, ThreadLimit равен 10, тогда MaxClient равен 100

    MaxRequestPerChild

    1. Директива MaxRequestPerChild устанавливает ограничение на количество запросов, которые будет обрабатывать отдельный дочерний процесс.
    2. После запроса MaxRequestPerChild дочерний процесс умирает.
    3. Если MaxRequestPerChild равен 0, то процесс никогда не истечет.

    Event MPM:

    Event MPM представлен в Apache 2.4. Он очень похож на рабочий MPM, но предназначен для управления высокими нагрузками.

    Этот MPM позволяет одновременно обслуживать больше запросов, передав часть обработки на вспомогательные потоки. Используя этот MPM, Apache пытается решить «проблему сохранения активности», с которой сталкиваются другие MPM. Когда клиент выполняет первый запрос, он может оставить соединение открытым и отправлять дальнейшие запросы, используя тот же сокет, что снижает перегрузку соединения.

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Запуск базового веб-сервера Apache | Документация по Compute Engine

    Установите Apache

    1. Используйте диспетчер пакетов Debian для установки пакета apache2 :

        sudo apt update && sudo apt -y установить apache2
        

      После установки Apache операционная система автоматически запускает Сервер Apache.

    2. Перезаписать веб-страницу по умолчанию веб-сервера Apache с помощью следующей команды:

        echo '    

      Hello World!

      ' | sudo tee /var/www/html/index.html

    Проверьте свой сервер

    Убедитесь, что ваш экземпляр обслуживает трафик по внешнему IP-адресу.

    1. В консоли Google Cloud перейдите на страницу экземпляров ВМ .

      Перейти к экземплярам ВМ

    2. Скопируйте внешний IP-адрес для вашего экземпляра под Внешний IP-адрес столбец.
    3. В браузере перейдите по адресу http: // [EXTERNAL_IP] . Не подключайтесь с использованием https , поскольку сервер вернет ошибку Connection Refused .

    Теперь вы должны увидеть "Hello World!" страница.

    Очистить

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

    Поиск и устранение неисправностей

    Получение Соединение отклонено Ошибка

    Если вы видите ошибку Connection Refused , возможно, что:

    • Ваш экземпляр виртуальной машины не является общедоступным из-за правил вашего брандмауэра или теги неправильно настроены одним из следующих способов:

      • Экземпляр виртуальной машины не имеет правильного тега, который позволяет Compute Engine чтобы применить к вашему экземпляру соответствующие правила брандмауэра.
      • В вашем проекте нет правила брандмауэра, разрешающего трафик внешний IP-адрес вашего экземпляра.
    • Вы пытаетесь получить доступ к виртуальной машине, используя адрес https . Убедитесь, что ваш URL: http: // [EXTERNAL_IP] , а не https: // [EXTERNAL_IP] .

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

    1. В консоли Google Cloud перейдите на страницу экземпляров виртуальных машин .

      Перейти к экземплярам ВМ

    2. Щелкните имя экземпляра, к которому вы пытаетесь подключиться.
    3. Щелкните Изменить вверху страницы.
    4. Прокрутите вниз до Межсетевые экраны и убедитесь, что Разрешить HTTP-трафик проверено. Если он не отмечен, проверьте его.
    5. Сохраните изменения. Это гарантирует, что правильные теги будут добавлены в Экземпляр ВМ.

    Чтобы убедиться, что существует правильное правило брандмауэра:

    1. В консоли Google Cloud перейдите на страницу Правила брандмауэра .

      Зайдите в Правила межсетевого экрана

    2. Найдите правило брандмауэра, разрешающее все диапазоны IP-адресов через tcp: 80. Обычно, это правило называется правилом default-allow-http .
    3. Если правила не существует, создайте его.
      1. Щелкните Создать правило брандмауэра .
      2. Введите имя правила, например default-allow-http .
      3. Ниже Диапазон IP-адресов источника , введите 0.0.0.0/0 , чтобы разрешить трафик от все источники.
      4. В разделе Протоколы и порты , проверьте Указанные протоколы и порты и введите tcp: 80 .
      5. Создайте правило брандмауэра.

    Проверьте свой сервер еще раз, перейдя на внешний IP-адрес экземпляра:

      http: // [EXTERNAL_IP]
      

    Что дальше

    Узнайте, как разместить веб-сайт на Google Compute Engine.

    Узнайте, как настроить LAMP на Google Compute Engine.

    Попробуйте сами

    Если вы новичок в Google Cloud, создайте учетную запись, чтобы оценить, как Compute Engine работает в реальном мире сценарии. Новые клиенты также получают 300 долларов в качестве бесплатных кредитов для запуска, тестирования и развертывать рабочие нагрузки.

    Попробуйте Compute Engine бесплатно

    Пошаговая инструкция - DNSstuff

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

    Существует множество хорошо известных альтернатив Apache, среди которых nginx, XAMPP, Caddy и Microsoft IIS, но ни одна из них не предлагает такой же широты использования, как Apache.Apache настолько широко используется, что занимает более 50% рынка коммерческих веб-серверов. Он особенно популярен для использования с Unix-подобными операционными системами, хотя поддерживает большинство платформ. Это включает Windows, OS X, OS / 2 и другие.

    Простое определение Apache
    Как настроить сервер Apache
    Как настроить сервер Apache в Linux
    Как настроить виртуальные серверы Apache
    Лучший инструмент мониторинга сервера Apache

    Однако гибкость и широта использования Apache во многих случаях достигаются за счет простоты.Структура конфигурации сложна, и многие дополнительные функции трудно использовать. Это руководство по серверу Apache объяснит основы Apache, предоставив инструкции по настройке веб-сервера Apache в Linux, шаг за шагом. Цель состоит в том, чтобы помочь вам не только настроить сервер Apache, но и контролировать его. Для этой цели я рекомендую SolarWinds ® Server & Application Monitor для Apache.

    Простое определение Apache

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

    Как настроить сервер Apache

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

    Вы можете установить и настроить сервер Apache двумя способами.

    1. Установка от поставщика. Поскольку это веб-приложение с открытым исходным кодом, любой может создать установщик для своей индивидуальной среды. Такие производители, как Red Hat, SUSE и Debian, использовали эту возможность для настройки конфигурации сервера Apache и расположения файлов с учетом базовой операционной системы и других установленных программ.
    2. Установка исходного кода. Альтернативой использованию установщика от поставщика является установка сервера Apache путем сборки и установки непосредственно из исходного кода.Такой подход позволяет настроить сервер Apache независимо от платформы, доступным для всех операционных систем.

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

    Как настроить сервер Apache в Linux

    Это руководство по серверу Apache теперь будет содержать пошаговые инструкции по настройке веб-сервера Apache в Linux.

    1. Обновите системные репозитории. Это включает в себя загрузку самой последней версии программного обеспечения путем обновления локального индекса пакетов репозиториев Ubuntu. Для этого зайдите в терминал и введите в него команду «$ sudo apt update».
    2. Установите Apache с помощью команды «apt». В этом примере давайте использовать Apache2. Просто введите следующую команду - «$ sudo apt install apache2» - как sudo, которая установит Apache2 и все необходимые зависимости. На этом этапе вас могут спросить, хотите ли вы продолжить процесс установки.Введите «Y», чтобы указать, что вы хотите, и установка начнется.
    3. Убедитесь, что Apache успешно установлен. После завершения процедуры установки проверьте номер версии, чтобы убедиться, что Apache2 теперь установлен в вашей системе. Для этого введите «$ apache2 -version». Появится версия сервера, надеюсь, подтверждающая, что Apache2 установлен.

    Как настроить виртуальные серверы Apache

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

    1. Сначала введите «$ sudo nano /etc/apache2/sites-available/example.com.conf», чтобы открыть файл конфигурации виртуального хоста.
    2. Замените «example.com» соответствующим образом. Затем вы сможете изменить следующее:
      ServerName example.com
      ServerAdmin admin @ example.com
      ServerAlias ​​www.example.com
      DocumentRoot /var/www/example.com/public_html Еще раз не забудьте заменить все примеры компонентов соответствующей информацией. После изменения конечный результат должен выглядеть следующим образом:

      ServerName example.com
      ServerAdmin [email protected]
      ServerAlias ​​www.example.com
      DocumentRoot /var/www/example.com/public_html
      ErrorLog $ {APACHE_LOG_DIR} /error.log
      CustomLog $ {APACHE_LOG_DIR} /access.log вместе
    3. При возникновении ошибки обратитесь к этим инструкциям, чтобы убедиться, что ничего не было опечатано или введено неправильно.

    После настройки веб-сервера Apache я настоятельно рекомендую использовать инструмент мониторинга, который поможет вам протестировать сервер Apache и эффективно контролировать его. На рынке есть несколько таких инструментов, но SolarWinds Server & Application Monitor (SAM) возглавляет мой список. Этот инструмент позволяет легко определять конкретные метрики производительности для упреждающего мониторинга Apache Cassandra, Apache Geronimo и Apache Tomcat. Единое приложение способно контролировать и управлять всей вашей средой Apache и базовой инфраструктурой сервера.

    С помощью SAM легко контролировать время безотказной работы и производительность, а также диагностировать основные проблемы с производительностью. Приложение обеспечивает упреждающий мониторинг всех компонентов поддержки веб-сервера, участвующих в работе веб-сервера Apache, включая Linux и MySQL. Мониторинг приложений охватывает виртуальный уровень, серверы и приложения, такие как Microsoft SQL Server, Exchange и Active Directory. Система извлекает выгоду из настраиваемых предупреждений, отчетов и простых в навигации информационных панелей, готовых к использованию сразу после установки.Это означает, что вы можете приступить к работе после установки SAM без необходимости создавать или изменять информационные панели.

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

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

    Благодаря единой централизованной панели управления и обширной поддержке, предлагаемой SolarWinds, использование этого приложения не может быть проще. SolarWinds SAM также служит более широким решением для мониторинга приложений и серверов, с его возможностями мониторинга, распространяющимися на Active Directory, серверы без агентов, зависимости приложений, AWS, Azure IaaS и многое другое.

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

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