Что такое apache? свободный веб-сервер apache http server
Содержание:
Log Files and Troubleshooting ¶
As an Apache HTTP Server administrator, your most valuable assets are
the log files, and, in particular, the error log. Troubleshooting any
problem without the error log is like driving with your eyes closed.
The location of the error log is defined by the directive, which may be set globally,
or per virtual host. Entries in the error log tell you what went wrong,
and when. They often also tell you how to fix it. Each error log message
contains an error code, which you can search for online for even more
detailed descriptions of how to address the problem. You can also
configure your error log to contain a log ID which you can then
correlate to an access log entry, so that you can determine what request
caused the error condition.
Статьи по HTTP-серверу Apache
- «Установка Apache 2 на сервер с ОС Debian 9»
- «Установка PHP 7.3 на сервер с Debian 9 (связка NGiNX + Apache)»
- «Apache. С чего следует начать?»
- « () — программа для управления сервером Apache»
- « — список загруженных модулей Apache»
- «Установка модуля Apache () на сервер под ОС Debian 9»
- «Подключение модуля mpm-itk к серверу Apache под Debian 9»
- « — список загруженных модулей Apache»
- « () — программа для управления сервером Apache»
- «Как поменять порт WEB-сервера Apache»
- «Завершение конфигурации NGiNX на 80-м порту»
- « — подготовка конфига NGiNX в качестве прокси-сервера Apache»
- «Минимальный конфиг виртуального хоста Apache 2 для настройки работы домена в связке Apache + NGiNX»
- «Как передать реальный IP для Apache, работающем за прокси NGiNX»
Шаг 5. Настройка редиректа
Чтобы все запросы по http автоматически перенаправлялись на https, необходимо настроить перенаправление (redirect). Есть несколько способов это сделать.
В конфигурационном файле
Открываем файл с настройкой виртуальных доменов (как в шаге 3) и дописываем следующее:
<VirtualHost *:80>
ServerName site.ru
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
* в конкретном примере, мы перенаправили все запросы для сайта site.ru.
** обратите особое внимание, что если у Вас уже есть VirtualHost *:80 для настраиваемого сайта, необходимо его закомментировать или отредактировать
Установка модуля rewrite
Чтобы перенаправление работало в Apache, необходимо установить модуль rewrite.
а) в CentOS открываем конфигурационный файл и проверяем наличие строки:
vi /etc/httpd/conf.modules.d/00-base.conf
LoadModule rewrite_module modules/mod_rewrite.so
* если ее нет, добавляем; если она закомментирована, снимаем комментарий.
systemctl restart httpd
б) в Ubuntu:
a2enmod rewrite
systemctl restart apache2
История
Сервер был написан в начале 1995 года и считается, что его имя восходит к шуточному названию «a patchy » (с англ. — «в заплатках»), так как он устранял ошибки популярного тогда сервера Всемирной паутины NCSA HTTPd 1.3. В дальнейшем, с версии 2.х, сервер был переписан заново и теперь не содержит кода NCSA. На данный момент разработка ведётся в ветке 2.4, а в версиях 1.3, 2.0 и 2.2 производятся лишь исправления ошибок безопасности. На текущий момент последняя версия ветки 2.4 — 2.4.41 (14 августа 2019), для первой версии это 1.3.42.
Веб-сервер Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle и IBM WebSphere.
С апреля и до настоящего времени является самым популярным HTTP-сервером в Интернете. Статистика Netcraft показывает следующие данные об использовании Apache:
- в августе 2007 года он работал на 51 % всех веб-серверов
- в мае 2009 года — на 46 %
- в январе 2011 года — на 59 %, то есть более чем на 160 млн сайтов
- в январе 2016 года — на 33,56 %, то есть более чем на 304 млн сайтов.
Apache имеет долю рынка в России до 17,45 %. Это самый популярный веб-сервер после NGINX с долей рынка 64,89 %.
Функциональные возможности
Интеграция с другим ПО и языками программирования
Существует множество модулей, добавляющих к Apache поддержку различных языков программирования и систем разработки.
К ним относятся:
- PHP (mod_php).
- Python (mod python, mod wsgi).
- Ruby (apache-ruby).
- Perl (mod perl).
- ASP (apache-asp).
- Tcl (rivet)
Кроме того, Apache поддерживает механизмы CGI и FastCGI, что позволяет исполнять программы на практически всех языках программирования, в том числе C, C++, Lua, sh, Java.
Безопасность
Apache имеет различные механизмы обеспечения безопасности и разграничения доступа к данным. Основными являются:
- Ограничение доступа к определённым каталогам или файлам.
- Механизм авторизации пользователей для доступа к каталогу на основе HTTP-аутентификации (mod_auth_basic) и digest-аутентификации (mod_auth_digest).
- Ограничение доступа к определённым каталогам или всему серверу, основанное на IP-адресах пользователей.
- Запрет доступа к определённым типам файлов для всех или части пользователей, например запрет доступа к конфигурационным файлам и файлам баз данных.
- Существуют модули, реализующие авторизацию через СУБД или PAM.
В некоторых MPM-модулях присутствует возможность запуска каждого процесса Apache, используя различные uid и gid с соответствующими этим пользователям и группам пользователей.
Также существует механизм suexec, используемый для запуска скриптов и CGI-приложений с правами и идентификационными данными пользователя.
Для реализации шифрования данных, передающихся между клиентом и сервером, используется механизм SSL, реализованный через библиотеку OpenSSL. Для удостоверения подлинности веб-сервера используются сертификаты X.509.
Интернационализация
Начиная с версии 2.0 появилась возможность определения сервером локали пользователя. Сообщения об ошибках и событиях, посылаемые браузеру, теперь представлены на нескольких языках и используют SSI-технологию.
Также, можно реализовать средствами сервера отображение различных страниц для пользователей с различными локалями. Apache поддерживает множество кодировок, в том числе Unicode, что позволяет использовать страницы, созданные в любых кодировках и на любых языках.
Обработка событий
Администратор может установить собственные страницы и обработчики для всех HTTP-ошибок и событий, таких как 404 (Not Found) или 403 (Forbidden). В том числе существует возможность запуска скриптов и отображения сообщений на разных языках.
Server Side Includes
Основная статья: Server Side Includes
В версиях 1.3 и старше был реализован механизм Server Side Includes, позволяющий динамически формировать HTML-документы на стороне сервера.
Шаг 2. Установка модуля SSL для Apache
Прежде, чем устанавливать модуль, выполняем команду:
apachectl -M | grep ssl
Если видим строчку, на подобие:
ssl_module (shared)
Спускаемся к шагу 3 данной инструкции.
Иначе, устанавливаем httpd ssl_module.
а) Для CentOS:
yum install mod_ssl
б) Для Ubuntu/Debian:
a2enmod ssl
в) Для FreeBSD:
Открываем файл конфигурации apache:
ee /usr/local/etc/apache24/httpd.conf
* подразумевается, что используется apache 2.4.
Находим и снимаем комментарии со следующих строчек:
…
LoadModule ssl_module libexec/apache24/mod_ssl.so
…
Include etc/apache24/extra/httpd-ssl.conf
…
И ставим комментарии в следующих строках:
#<IfModule ssl_module>
#SSLRandomSeed startup builtin
#SSLRandomSeed connect builtin
#</IfModule>
Чтобы настройки применились, необходимо перезапустить веб-сервер одной из команд:
systemctl restart httpd
systemctl restart apache2
service apache2 restart
* первая, как правило, используется в системах на базе RPM, вторая — DEB, третья — BSD.
Hostnames and DNS ¶
In order to connect to a server, the client will first have to resolve
the servername to an IP address — the location on the Internet where the
server resides. Thus, in order for your web server to be reachable, it
is necessary that the servername be in DNS.
If you don’t know how to do this, you’ll need to contact your network
administrator, or Internet service provider, to perform this step for
you.
More than one hostname may point to the same IP address, and more
than one IP address can be attached to the same physical server. Thus, you
can run more than one web site on the same physical server, using a
feature called virtual hosts.
If you are testing a server that is not Internet-accessible, you
can put host names in your hosts file in order to do local resolution.
For example, you might want to put a record in your hosts file to map a
request for to your local system, for
testing purposes. This entry would look like:
A hosts file will probably be located at or
.
Применение в World Wide Web
Apach используется в основном для отправки статических и динамических страниц в World Wide Web. Многие приложения разработаны с учетом среды реализации «Апач» или будут использовать характеристики этого сервера. Apach — компонент сервера в популярной платформе приложений LAMP наряду с языками программирования MySQL и PHP, Perl , Python и Ruby, включая базу данных Oracle и сервер приложений IBM WebSphere. Mac OS X интегрирует его как часть собственного web-server и поддержку приложений WebObjects.
Apache используется для многих других задач, когда контент должен быть доступен безопасным и надежным способом. Например, при совместном использовании файлов с персонального компьютера в интернет. Пользователь, у которого на рабочем столе установлен «Апач», может произвольно размещать файлы в корне документов, откуда они могут стать общими.
Разработчики веб-приложений иногда используют локальную версию Apache для предварительного просмотра и тестирования кода во время разработки. Microsoft Internet Information Services (IIS) является основным конкурентом «Апач», а также веб-сервером Sun Java System от Sun Microsystems и множеством других приложений, таких как Zeus Web-Server.
Некоторые из крупнейших сайтов в мире работают на Apache. Внешний интерфейс поисковой системы Google основан на ее модифицированной версии, которая называется Google веб-сервер (GWS). Многие проекты «Википедии» также работают на серверах «Апач».
Configuration Files and Directives ¶
The Apache HTTP Server is configured via simple text files.
These files may be located any of a variety of places, depending on how
exactly you installed the server. Common locations for these files may
be found in
the httpd wiki. If you installed httpd from source, the default
location of the configuration files is
. The default configuration file is
usually called . This, too, can vary in
third-party distributions of the server.
The configuration is frequently broken into multiple smaller files,
for ease of management. These files are loaded via the directive. The names or locations of
these sub-files are not magical, and may vary greatly from one
installation to another. Arrange and subdivide these files as
makes the most sense to you. If the file arrangement
you have by default doesn’t make sense to you, feel free to rearrange it.
The server is configured by placing configuration directives in these
configuration files. A directive is a keyword followed by one or more
arguments that set its value.
The question of «Where should I put that
directive?» is generally answered by considering where you want a
directive to be effective. If it is a global setting, it should appear
in the configuration file, outside of any , , , or other section. If it is to
apply only to a particular directory, then it should go inside a
section referring to
that directory, and so on. See the Configuration
Sections document for further discussion of these sections.
Решение проблем
Текущее состояние службы вы можете вывести командой .
Лог-файлы Apache вы найдете в каталоге .
PID file /run/httpd/httpd.pid not readable (yet?) after start
Если вы получаете такую ошибку, закомментируйте строку:
LoadModule unique_id_module modules/mod_unique_id.so
в файле настроек Apache.
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe
Если не удалось запустить при старте и вы получаете следующее сообщение об ошибке:
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
Это значит, что Apache работает c поточным MPM, но используется не потокобезопасная версия PHP. В этом случае, следует заменить на :
/etc/httpd/conf/httpd.conf
# LoadModule mpm_event_module modules/mod_mpm_event.so LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
и перезапустить .
Verify
It is essential that you verify the integrity of the downloaded files using the PGP signatures. Please read How to Verify Downloaded Files for more information on how and why you should verify our releases.
The PGP signatures can be verified using PGP or GPG. First download the KEYS file as well as the .asc signature files for the relevant release packages. Make sure you get these files from the main distribution directory, rather than from a mirror. Then verify the signatures using
% pgpk -a KEYS % pgpv apache-tika-X.Y.Z-src.zip.asc
or
% pgp -ka KEYS % pgp apache-tika-X.Y.Z-src.zip.asc
or
% gpg --import KEYS % gpg --verify apache-tika-X.Y.Z-src.zip.asc apache-tika-X.Y.Z-src.zip
Running Apache as a Service ¶
Apache comes with a utility called the Apache Service Monitor.
With it you can see and manage the state of all installed Apache
services on any machine on your network. To be able to manage an
Apache service with the monitor, you have to first install the
service (either automatically via the installation or manually).
You can install Apache as a Windows NT service as follows from
the command prompt at the Apache subdirectory:
If you need to specify the name of the service you want to
install, use the following command. You have to do this if you
have several different service installations of Apache on your
computer. If you specify a name during the install, you have to
also specify it during any other -k operation.
If you need to have specifically named configuration files for
different services, you must use this:
If you use the first command without any special parameters except
, the service will be called
and the configuration will be assumed to be .
Removing an Apache service is easy. Just use:
The specific Apache service to be uninstalled can be specified by using:
Normal starting, restarting and shutting down of an Apache
service is usually done via the Apache Service Monitor, by using
commands like and or via normal Windows service management. Before
starting Apache as a service by any means, you should test the
service’s configuration file by using:
You can control an Apache service by its command line switches,
too. To start an installed Apache service you’ll use this:
To stop an Apache service via the command line switches, use
this:
or
You can also restart a running service and force it to reread
its configuration file by using:
By default, all Apache services are registered to run as the
system user (the account). The
account has no privileges to your network
via any Windows-secured mechanism, including the file system, named
pipes, DCOM, or secure RPC. It has, however, wide privileges locally.
Never grant any network privileges to
the account! If you need Apache to be able
to access network resources, create a separate account for Apache as
noted below.
It is recommended that users create a separate account for running
Apache service(s). If you have to access network resources via Apache,
this is required.
- Create a normal domain user account, and be sure to
memorize its password. - Grant the newly-created user a privilege of and . On Windows NT 4.0 these privileges are granted via
User Manager for Domains, but on Windows 2000 and XP you probably
want to use Group Policy for propagating these settings. You can
also manually set these via the Local Security Policy MMC snap-in. - Confirm that the created account is a member of the Users
group. - Grant the account read and execute (RX) rights to all document
and script folders ( and
for example). - Grant the account change (RWXD) rights to the
Apache directory. - Grant the account read and execute (RX) rights to the
binary executable.
It is usually a good practice to grant the user the Apache
service runs as read and execute (RX) access to the whole Apache2.5
directory, except the subdirectory, where the
user has to have at least change (RWXD) rights.
If you allow the account to log in as a user and as a service,
then you can log on with that account and test that the account has
the privileges to execute the scripts, read the web pages, and that
you can start Apache in a console window. If this works, and you
have followed the steps above, Apache should execute as a service
with no problems.
Error code 2186 is a good indication that
you need to review the «Log On As» configuration for the service,
since Apache cannot access a required network resource. Also, pay
close attention to the privileges of the user Apache is
configured to run as.
When starting Apache as a service you may encounter an error
message from the Windows Service Control Manager. For example,
if you try to start Apache by using the Services applet in the
Windows Control Panel, you may get the following message:
You will get this generic error if there is any problem with
starting the Apache service. In order to see what is really causing
the problem you should follow the instructions for Running Apache
for Windows from the Command Prompt.
Минимальные требования и преимущества
Apache получил широкое признание в сети, с 1996 года он является наиболее часто используемым HTTP-сервером. Достигнул своей максимальной доли рынка в 2005 году, когда сервер использовался на 70 % сайтов во всем мире. В последние годы его доля на рынке сократилась. Примечательно то, что для Apache такой спад не свидетельствует о непопулярности и деградации технологии.
Минимальные требования для эксплуатации:
- Процессор – Pentium.
- Оперативная память — 64 Мб.
- ОС-Microsoft Windows, GNU/Linux.
- Размер установки- 50 Мб.
Преимущества:
- Модульная конструкция.
- Открытый исходный код.
- Мультиплатформенная конструкция.
- Растяжимость.
- Популярность — легко получить помощь и поддержку.
Денверский набор
|
Стартовая страница TopServer. Здесь находятся кнопки для перехода на панель управления и проверки работоспособности определенных серверных компонентов. |
При организации локального веб-сервера для тестирования и отладки различных скриптов, сайтов и веб-приложений отлично подходит набор веб-разработчика под названием «Денвер». Фактически он представляет собой связку компонентов Apache, SSI, mod_rewrite, mod_php, phpMyAdmin (система управления БД MySQL), настроенных для работы на одной-единственной станции.
Это означает, что вы не сможете заглянуть на данный сервер ни из другого компьютера в сети (за исключением своего собственного, разумеется), ни из интернета. Главное достоинство «Денвера» в том, что вам не придется устанавливать веб-сервер Apache, PHP-интерпретатор и СУБД MySQL, тратить время на правку файла конфигурации серверной станции httpd.conf, создание виртуальных дисков и другие настройки. Достаточно просто загрузить по ссылке www.denwer.ru/dis/Base/latest последнюю версию дистрибутива и проинсталлировать сервер.
Описывать процесс установки и настройки «Денвера» мы не будем — приведем исключительно ссылки на официальные руководства, написанные самими создателями серверного ПО, группу которых возглавляет Дмитрий Котеров — основатель проекта. Итак, знакомьтесь:
www.denwer.ru/base.html — по данному адресу в Сети вы найдете очень лаконичную и подробную инструкцию по инсталляции «Денвера». Здесь же приведены и рекомендации по настройке и управлению виртуальными хостами.
Узнать подробнее об основных возможностях пакета вы можете на страничке www.denwer.ru/about.html.
А всем желающим переделать локальный «Денвер» в «Денвер-онлайн», то есть превратить локальный сервер в полноценную интернет-станцию, рекомендуем почитать следующий документ: www.denwer.ru/other/shared.html. Написано в нем много и по существу — и про настройку «Денвера», и про безопасность, и даже про возможные хакерские атаки.
| Простота — залог успеха | |
|
Если вы ищете максимально простой веб-сервер с графическим интерфейсом и минимальным набором основных функций, то крайне неплохим решением будет крохотная утилита Small HTTP Server, способная вмиг превратить ваш персональный компьютер в полноценный веб-сервер. Отличительные особенности Small HTTP Server — низкая ресурсоемкость, удобный графический интерфейс, что для веб-серверов — редкость (у Apache, например, и вовсе нет графического интерфейса), возможность развертывания сервера даже при использовании диалап-соединения. Small HTTP Server включает в себя сервера HTTP, FTP, SMTP, POP3, прокси и DNS, а также модуль выдачи подробной статистики. Примечательно то, что Small HTTP Server можно использовать и для отладки скриптов на локальной машине, полностью запретив доступ к компьютеру из Сети. Единственный недостаток мини-сервера заключается в том, что программа является бесплатной лишь отчасти — если использовать ее в коммерческих целях, вам придется пройти платную регистрацию на официальном сайте http://smallsrv.com/indexr.htm. С него же вы можете скачать самый свежий билд программы. Немного о настройках Small HTTP Server. После запуска перед вами появится небольшая форма, на которой нет ни панелей инструментов, ни каскадных меню, ни даже строк состояния. Только техническая информация о разработке — версия, автор, тип лицензии (зарегистрированная версия/ознакомительный режим). Для настройки веб-сервера вам необходимо проделать следующие манипуляции. Щелкните по кнопке в левом верхнем углу приложения. В выпавшем меню выберите пункт Server\Настройки. Откроется специальное окно настройки серверных характеристик, на поверхности которого размещена шапка главного меню, а также ряд полей характеристик Small HTTP Server. Ну а дальше все совсем просто — выбираете определенную категорию параметров в главном меню, щелкаете по ней левой кнопкой мышки и настраиваете нужные атрибуты в основном рабочем поле утилиты. |
Configuring Access to Network Resources ¶
Access to files over the network can be specified using two
mechanisms provided by Windows:
- Mapped drive letters
- e.g.,
- UNC paths
- e.g.,
Mapped drive letters allow the administrator to maintain the
mapping to a specific machine and path outside of the Apache httpd
configuration. However, these mappings are associated only with
interactive sessions and are not directly available to Apache httpd
when it is started as a service. Use only UNC paths for
network resources in httpd.conf so that the resources can
be accessed consistently regardless of how Apache httpd is started.
(Arcane and error prone procedures may work around the restriction
on mapped drive letters, but this is not recommended.)