Для администратора Linux важно знать, как обращаться с веб-сервером Apache. В этой статье вы узнаете немного теории о логике работы Apache, а также как его установить и запустить, как создать виртуальные хосты и применить к ним контексты SELinux.
Базовая настройка сервера Apache
Настроить базовый сервер Apache несложно. Он состоит из нескольких простых шагов:
- Установить необходимые пакеты.
- Определить основной файл конфигурации.
- Создать некоторый контент веб-сервера.
Установка необходимых пакетов
Сервер Apache предоставляется через несколько различных пакетов. Базовый пакет – httpd; этот пакет содержит все, что нужно для рабочего, но базового веб-сервера. Также есть несколько дополнительных пакетов. Для полного обзора пакетов вы можете использовать команду yum search http или использовать yum install httpd для установки базового пакета.
Обратите внимание, что команда yum search http выдает много пакетов. Это связано с тем, что веб-сервер Apache является модульным, а различные модули предоставляются через дополнительные пакеты yum.
Вместо использования отдельных пакетов вы также можете использовать yum groups. Команда yum groups list предоставляет обзор всех доступных групп yum, а yum group Basic Web Server предоставляет все необходимое для установки веб-сервера Apache и все необходимые зависимости. Чтобы выполнить установку Apache используйте yum groups install “Basic Web Server”.
Определение основного файла конфигурации
Конфигурация веб-сервера Apache проходит через различные файлы конфигурации. Основной файл конфигурации Apache – /etc/httpd/conf/httpd.conf. В этом файле указано много параметров. Самый важный параметр, который нужно понять для настройки базового веб-сервера, – это параметр DocumentRoot. Этот параметр указывает местоположение по умолчанию, где веб-сервер Apache ищет контент.
Другим важным параметром конфигурации является ServerRoot. Он определяет каталог по умолчанию, где Apache будет искать свои файлы конфигурации. По умолчанию для этой цели используется каталог /etc/httpd, но могут использоваться и другие каталоги.
Вы заметите, что в httpd.conf упоминаются многие другие файлы конфигурации. Использование дополнительных файлов конфигурации позволяет приложениям легко устанавливать snap-in файлы, которые будут включены сервером Apache из пакетов RPM. Все имена этих файлов конфигурации относятся к ServerRoot в /etc/httpd.
В листинге 1 показана часть содержимого файла конфигурации httpd.conf.
Листинг 1
[root@kvm ~]# cat /etc/httpd/conf/httpd.conf | grep -v '#'
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www">
AllowOverride None
Require all granted
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
<IfModule logio_module>
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
IncludeOptional conf.d/*.conf
[root@kvm ~]#
Создание контента веб-сервера
После определения DocumentRoot веб-сервера вы знаете все, что нужно знать для настройки базового веб-сервера. По умолчанию веб-сервер Apache ищет файл с именем index.html и представляет содержимое этого документа клиентам, использующим браузер для доступа к веб-серверу. Достаточно настроить этот файл с очень простым содержанием; подойдет только строка типа «Добро пожаловать на мой веб-сервер».
Чтобы протестировать веб-сервер, вы можете запустить браузер. Браузер Firefox установлен по умолчанию во всех графических установках RHEL / CentOS. Если ваш сервер не поддерживает графический интерфейс, используйте yum install elinks для установки текстового браузера elinks.
Этот браузер не позволяет загружать сложные веб-страницы, но он позволяет вам проверить работу веб-сервера. Ниже на скриншоте показано, как выглядит интерфейс elinks.
В упражнении 1 вы узнаете, как настроить базовый веб-сервер.
Упражнение 1. Настройка базового веб-сервера
В этом упражнении вы узнаете, как настроить базовый веб-сервер Apache.
1. Выполните yum groups install “Basic Web Server”. Это установит пакет httpd, а также некоторые из наиболее часто используемых дополнительных пакетов.
2. Откройте главный файл конфигурации Apache в редакторе и найдите строку, которая начинается с DocumentRoot. DocumentRoot определяет местоположение, где сервер Apache будет искать контент, который он будет обслуживать. Убедитесь, что он установлен в /var/www/html.
3. В каталоге /var/www/html создайте файл с именем index.html. В этом файле введите «Добро пожаловать на мой веб-сервер».
4. Чтобы запустить и включить веб-сервер, выполните systemctl start httpd; systemctl enable httpd. Команда запускает веб-сервер и гарантирует, что он будет запускаться автоматически после перезапуска сервера. Выполните systemctl status httpd, чтобы убедиться, что веб-сервер запущен и работает. В листинге 2 вы можете увидеть, как должен выглядеть результат этой команды.
5. Выполните yum install elinks, чтобы установить текстовый браузер elinks. Введите elinks http://localhost, чтобы подключиться к веб-серверу и убедиться, что он работает.
[root@kvm ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2019-10-27 21:48:23 +10; 13min ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 29160 (httpd)
Status: "Total requests: 3; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─29160 /usr/sbin/httpd -DFOREGROUND
├─29167 /usr/sbin/httpd -DFOREGROUND
├─29168 /usr/sbin/httpd -DFOREGROUND
├─29169 /usr/sbin/httpd -DFOREGROUND
├─29170 /usr/sbin/httpd -DFOREGROUND
├─29171 /usr/sbin/httpd -DFOREGROUND
├─29172 /usr/sbin/httpd -DFOREGROUND
├─29831 /usr/sbin/httpd -DFOREGROUND
├─29833 /usr/sbin/httpd -DFOREGROUND
└─29834 /usr/sbin/httpd -DFOREGROUND
Oct 27 21:48:23 kvm systemd[1]: Starting The Apache HTTP Server...
Oct 27 21:48:23 kvm httpd[29160]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, usi...message
Oct 27 21:48:23 kvm systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@kvm ~]#
Понимание файлов конфигурации Apache
При установке веб-сервера Apache по умолчанию создается довольно сложное дерево конфигурации в каталоге /etc/httpd. В листинге 3 показано содержимое этого каталога по умолчанию. Обратите внимание, что содержимое этого каталога может отличаться на вашем сервере, если установлены дополнительный пакеты. Apache является модульным, и после установки дополнительных модулей Apache здесь могут быть установлены другие файлы конфигурации.
Листинг 3
[root@kvm ~]# ls -l /etc/httpd/
total 0
drwxr-xr-x. 2 root root 37 Oct 27 21:47 conf
drwxr-xr-x. 2 root root 135 Oct 27 21:48 conf.d
drwxr-xr-x. 2 root root 186 Oct 27 21:48 conf.modules.d
lrwxrwxrwx. 1 root root 19 Oct 27 21:47 logs -> ../../var/log/httpd
lrwxrwxrwx. 1 root root 29 Oct 27 21:47 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx. 1 root root 10 Oct 27 21:47 run -> /run/httpd
[root@kvm ~]#
Первое, что вы заметите, это наличие трех символических ссылок на журналы, модули и каталог выполнения. Они созданы, чтобы позволить Apache запускаться в среде chroot.
Среда chroot предоставляет поддельный корневой каталог. Это каталог в файловой системе, представленный в качестве корневого каталога для процесса, который выполняется в среде chroot. Это сделано по соображениям безопасности: процессы, работающие в среде chroot, могут обращаться к файлам только в этой среде chroot, что снижает риск возникновения инцидентов безопасности, когда злоумышленникам удается получить оболочку входа в систему с использованием идентификатора веб-сервера и попробовать пройти через файловюя систему для выполнения несанкционированных действий.
Основные файлы конфигурации для веб-сервера Apache находятся в каталоге /etc/httpd/conf. Для начала, есть файл httpd.conf, который содержит наиболее важные параметры конфигурации. Кроме того, есть файл с именем magic. Этот файл используется браузером для интерпретации того, каким должно быть содержимое веб-сервера. Это гарантирует, что содержимое веб-сервера отображается правильно в разных браузерах.
Каталог /etc/httpd/conf.d содержит файлы, которые включены в конфигурацию Apache. Это делается с помощью строки Include conf.modules.d/*.conf в файле httpd.conf.
Этот каталог может использоваться RPM, которые включают snap-in файлы оснастки Apache. Как и в случае с ServerRoot, этот подход позволяет добавлять файлы конфигурации, которые определяют различные веб-страницы, без изменения содержимого файла /etc/httpd/conf/httpd.conf.
Последним каталогом конфигурации является /etc/httpd/conf.modules.d. Apache – это модульный веб-сервер. Поэтому функциональность веб-сервера Apache можно легко расширить, добавив дополнительные модули, которые обеспечивают множество различных функций.
Если используются модули, они могут использовать свои собственные файлы конфигурации, специфичные для модулей, которые будут помещены в каталог /etc/httpd/conf.modules.d. Опять же, цель этого подхода состоит в том, чтобы сохранить конфигурацию в /etc/httpd/conf.d/httpd.conf настолько чистой, насколько это возможно, и убедиться, что конкретная конфигурация модуля не перезаписывается при обновлении универсальной конфигурации Apache.
Создание виртуальных хостов Apache
Многие компании размещают более одного сайта. К счастью, нет необходимости устанавливать новый сервер Apache для каждого веб-сайта, который вы хотите запустить. Apache можно настроить для работы с виртуальными хостами. Виртуальный хост – это отдельный файл конфигурации Apache, созданный для уникального имени хоста.
При работе с виртуальными хостами процедура доступа к хосту примерно такая:
- Клиент начинает сеанс с конкретным виртуальным хостом, обычно запуская браузер и вводя URL-адрес веб-сайта, который клиент хочет использовать.
- DNS помогает определить IP-адрес виртуального хоста, который является IP-адресом сервера Apache, на котором могут размещаться разные виртуальные хосты.
- Процесс Apache получает запросы на все виртуальные хосты, которые он размещает.
- Процесс Apache считывает заголовок HTTP, чтобы проанализировать, на какой виртуальный хост необходимо отправить этот запрос.
- Apache читает конкретный файл конфигурации виртуального хоста, чтобы определить, какой корневой каталог документов используется этим конкретным виртуальным хостом.
- Запрос перенаправляется в соответствующий файл содержимого в корне этого конкретного документа.
При работе с виртуальными хостами необходимо помнить несколько вещей:
■ Если ваш сервер Apache настроен для виртуальных хостов, все серверы, на которых он размещается, должны обрабатываться виртуальными хостами. Чтобы создать все записи перехвата для всех HTTP-запросов, которые направлены на этот хост, но у которых нет определенного файла виртуального хоста, вы можете создать виртуальный хост _default_: 80.
■ Виртуальный хостинг на основе имен является наиболее распространенным решением. В этом решении виртуальные хосты используют разные имена, но один и тот же IP-адрес.
■ Виртуальные хосты на основе IP менее распространены, но необходимы, если имя веб-сервера должно быть преобразовано в уникальный IP-адрес. Виртуальные хосты на основе IP требуют нескольких IP-адресов на одном сервере и являются общими в конфигурации, где сервер Apache использует TLS для защиты соединений.
Упражнение 2. Установка виртуальных хостов Apache
В этом упражнении вы создадите два виртуальных хоста. Чтобы помочь вам настроить виртуальные хосты, вы сначала настраиваете разрешение имен, после чего вы создаете конфигурацию виртуальных хостов.
Предполагается, что у вас есть два сервера с именем server1 и server2. Если что, вы можете настроить гипервизор и создать две виртуальные машины по этой статье: KVM в CentOS 7.
1. На сервере server1 и server2 откройте файл /etc/hosts с помощью редактора и добавьте две строки, которые позволяют сопоставить имена виртуальных хостов, которые вы собираетесь создать, с IP-адресом сервера:
192.168.122.210 server1.example.com server1
192.168.122.220 server2.example.com server2
192.168.122.210 account.example.com account
192.168.122.210 sales.example.com sales
2. На сервере server1 добавьте следующее в файл /etc/httpd/conf/httpd.conf. (Вы можете оставить все остальные настройки как есть.)
<Directory "/www/docs">
Require all granted
AllowOverride None
</Directory>
3. Там же на сервере server1 создайте файл конфигурации с именем account.example.com.conf в каталоге /etc/httpd/conf.d.
Добавьте в этот файл:
<VirtualHost *:80>
ServerAdmin webmaster@account.example.com
DocumentRoot /www/docs/account.example.com
ServerName account.example.com
ErrorLog logs/account/example.com-error_log
CustomLog logs/account.example.com-access_log common
</VirtualHost>
4. Закройте файл конфигурации и выполните:
mkdir -p /www/docs/account.example.com; mkdir -p /etc/httpd/logs/account/example.com-error_log; chown apache.apache -R /etc/httpd/logs/account/example.com-error_log
5. В каталоге account.example.com, который вы указали выше в строке DocumentRoot, создайте файл с именем index.html и убедитесь, что в нём написано «Добро пожаловать в account».
6. Временно выключите SELinux командой setenforce 0.
7. Выполните systemctl restart httpd для перезапуска веб-сервера Apache.
8. Выполните elinks http://account.example.com. Теперь вы должны увидеть страницу приветствия account. (Возможно, вам придется установить elinks, используя yum install -y elinks.)
9. Вернувшись в терминал, скопируйте файл /etc/httpd/conf.d/account.example.com.conf в файл с именем /etc/httpd/conf.d/sales.example.com.conf.
10. Откройте файл sales.example.com.conf в vi и выполните команду :%s/account/sales/g. Этой командой вы сделаете замену текста account на sales, который встречается во всём файле.
11. Создайте каталог /www/docs/sales.example.com и создайте в нем файл index.html, содержащий текст «Добро пожаловать на сервер sales».
12. Перезапустите httpd и убедитесь, что account и sales доступны.
Configure NGINX and NGINX Plus to serve static content, with type-specific root directories, checks for file existence, and performance optimizations.
This section describes how to configure NGINX and NGINX Plus to serve static content, how to define which paths are searched to find requested files, how to set up index files, and how to tune NGINX and NGINX Plus, as well as the kernel, for optimal performance.
Root Directory and Index Files
The root directive specifies the root directory that will be used to search for a file. To obtain the path of a requested file, NGINX appends the request URI to the path specified by the root
directive. The directive can be placed on any level within the http {}
, server {}
, or location {}
contexts. In the example below, the root
directive is defined for a virtual server. It applies to all location {}
blocks where the root
directive is not included to explicitly redefine the root:
server {
root /www/data;
location / {
}
location /images/ {
}
location ~ .(mp3|mp4) {
root /www/media;
}
}
Here, NGINX searches for a URI that starts with /images/
in the /www/data/images/
directory in the file system. But if the URI ends with the .mp3
or .mp4
extension, NGINX instead searches for the file in the /www/media/
directory because it is defined in the matching location
block.
If a request ends with a slash, NGINX treats it as a request for a directory and tries to find an index file in the directory. The index directive defines the index file’s name (the default value is index.html
). To continue with the example, if the request URI is /images/some/path/
, NGINX delivers the file /www/data/images/some/path/index.html
if it exists. If it does not, NGINX returns HTTP code 404 (Not Found)
by default. To configure NGINX to return an automatically generated directory listing instead, include the on
parameter to the autoindex directive:
location /images/ {
autoindex on;
}
You can list more than one filename in the index
directive. NGINX searches for files in the specified order and returns the first one it finds.
location / {
index index.$geo.html index.htm index.html;
}
The $geo
variable used here is a custom variable set through the geo directive. The value of the variable depends on the client’s IP address.
To return the index file, NGINX checks for its existence and then makes an internal redirect to the URI obtained by appending the name of the index file to the base URI. The internal redirect results in a new search of a location and can end up in another location as in the following example:
location / {
root /data;
index index.html index.php;
}
location ~ .php {
fastcgi_pass localhost:8000;
#...
}
Here, if the URI in a request is /path/
, and /data/path/index.html
does not exist but /data/path/index.php
does, the internal redirect to /path/index.php
is mapped to the second location. As a result, the request is proxied.
Trying Several Options
The try_files directive can be used to check whether the specified file or directory exists; NGINX makes an internal redirect if it does, or returns a specified status code if it doesn’t. For example, to check the existence of a file corresponding to the request URI, use the try_files
directive and the $uri
variable as follows:
server {
root /www/data;
location /images/ {
try_files $uri /images/default.gif;
}
}
The file is specified in the form of the URI, which is processed using the root
or alias
directives set in the context of the current location or virtual server. In this case, if the file corresponding to the original URI doesn’t exist, NGINX makes an internal redirect to the URI specified by the last parameter, returning /www/data/images/default.gif
.
The last parameter can also be a status code (directly preceded by the equals sign) or the name of a location. In the following example, a 404
error is returned if none of the parameters to the try_files
directive resolve to an existing file or directory.
location / {
try_files $uri $uri/ $uri.html =404;
}
In the next example, if neither the original URI nor the URI with the appended trailing slash resolve into an existing file or directory, the request is redirected to the named location which passes it to a proxied server.
location / {
try_files $uri $uri/ @backend;
}
location @backend {
proxy_pass http://backend.example.com;
}
For more information, watch the Content Caching webinar on‑demand to learn how to dramatically improve the performance of a website, and get a deep‑dive into NGINX’s caching capabilities.
Optimizing Performance for Serving Content
Loading speed is a crucial factor of serving any content. Making minor optimizations to your NGINX configuration may boost the productivity and help reach optimal performance.
Enabling sendfile
By default, NGINX handles file transmission itself and copies the file into the buffer before sending it. Enabling the sendfile directive eliminates the step of copying the data into the buffer and enables direct copying data from one file descriptor to another. Alternatively, to prevent one fast connection from entirely occupying the worker process, you can use the sendfile_max_chunk directive to limit the amount of data transferred in a single sendfile()
call (in this example, to 1
MB):
location /mp3 {
sendfile on;
sendfile_max_chunk 1m;
#...
}
Enabling tcp_nopush
Use the tcp_nopush directive together with the sendfile on;
directive. This enables NGINX to send HTTP response headers in one packet right after the chunk of data has been obtained by sendfile()
.
location /mp3 {
sendfile on;
tcp_nopush on;
#...
}
Enabling tcp_nodelay
The tcp_nodelay directive allows override of Nagle’s algorithm, originally designed to solve problems with small packets in slow networks. The algorithm consolidates a number of small packets into a larger one and sends the packet with a 200
ms delay. Nowadays, when serving large static files, the data can be sent immediately regardless of the packet size. The delay also affects online applications (ssh, online games, online trading, and so on). By default, the tcp_nodelay directive is set to on
which means that the Nagle’s algorithm is disabled. Use this directive only for keepalive connections:
location /mp3 {
tcp_nodelay on;
keepalive_timeout 65;
#...
}
Optimizing the Backlog Queue
One of the important factors is how fast NGINX can handle incoming connections. The general rule is when a connection is established, it is put into the “listen” queue of a listen socket. Under normal load, either the queue is small or there is no queue at all. But under high load, the queue can grow dramatically, resulting in uneven performance, dropped connections, and increased latency.
Displaying the Listen Queue
To display the current listen queue, run this command:
The output might be like the following, which shows that in the listen queue on port 80
there are 10
unaccepted connections against the configured maximum of 128
queued connections. This situation is normal.
Current listen queue sizes (qlen/incqlen/maxqlen)
Listen Local Address
0/0/128 *.12345
10/0/128 *.80
0/0/128 *.8080
In contrast, in the following command the number of unaccepted connections (192
) exceeds the limit of 128
. This is quite common when a web site experiences heavy traffic. To achieve optimal performance, you need to increase the maximum number of connections that can be queued for acceptance by NGINX in both your operating system and the NGINX configuration.
Current listen queue sizes (qlen/incqlen/maxqlen)
Listen Local Address
0/0/128 *.12345
192/0/128 *.80
0/0/128 *.8080
Tuning the Operating System
Increase the value of the net.core.somaxconn
kernel parameter from its default value (128
) to a value high enough for a large burst of traffic. In this example, it’s increased to 4096
.
-
For FreeBSD, run the command:
sudo sysctl kern.ipc.somaxconn=4096
-
For Linux:
-
Run the command:
sudo sysctl -w net.core.somaxconn=4096
-
Use a text editor to add the following line to
/etc/sysctl.conf
:net.core.somaxconn = 4096
-
Tuning NGINX
If you set the somaxconn
kernel parameter to a value greater than 512
, change the backlog
parameter to the NGINX listen directive to match:
server {
listen 80 backlog=4096;
# ...
}
Nginx был впервые выпущен в октябре 2004 года. Nginx — это свободно доступный веб-сервер с открытым исходным кодом, который можно использовать для обратного прокси, кэширования, потоковой передачи видео, прокси электронной почты и балансировки нагрузки. Разработчики стремились создать веб-сервер, обеспечивающий максимальную производительность и стабильность. Первоначально он задумывался как программное обеспечение для решения проблемы C10k.
Для самых загруженных веб-сайтов в Интернете Nginx оптимизирует доставку контента и приложений, повышает безопасность и обеспечивает доступность и масштабируемость. Это также идеальный веб-сервер для обслуживания файлов вашего статического веб-сайта или файлов, созданных генераторами статических сайтов. В этом посте мы настроим сервер и покажем вам, как обслуживать файл index.html с помощью Nginx. Давайте начнем!
Если у вас нет Nginx, сначала установите его в своей системе, выполнив следующую процедуру:
На первом шаге откройте свой терминал CentOS, нажав «CTRL + ALT + T», а затем запишите приведенную ниже команду:
$ sudo yum install nginx
Безошибочный вывод заявляет, что Nginx успешно установлен в вашей системе.
Как включить Nginx в CentOS
Теперь используйте приведенную ниже команду для включения Nginx в системе CentOS:
$ sudo systemctl enable nginx
После этого запускаем сервис Nginx:
$ sudo systemctl start nginx
Как установить правила брандмауэра для Nginx в CentOS
Следующее, что мы собираемся сделать, это настроить параметры брандмауэра, чтобы разрешить внешние подключения для Nginx, который по умолчанию работает на порту 80. Брандмауэр-CMD является командой, которая используется для управления постоянной и выполнения конфигурацией firewalld.
Для постоянного включения HTTP-соединений на порт 80 запишите приведенную ниже команду в свой терминал CentOS:
$ sudo firewall-cmd --permanent -add-service=http
Чтобы проверить, правильно ли была добавлена служба брандмауэра HTTP в систему, выполните эту команду:
$ sudo firewall-cmd --permanent --list-all
Теперь перезагрузите службу брандмауэра:
$ sudo firewall-cmd --reload
Все сделано!
Как обслуживать файл index.html с помощью Nginx
Чтобы следовать процедуре обслуживания файлов HTML, мы создадим каталог «www» с помощью команды mkdir. Команда «mkdir» используется в системах на базе Linux, таких как CentOS, для создания одного или нескольких каталогов.
Выполните приведенную ниже команду в своем терминале для создания «www» в текущем рабочем каталоге:
$ sudo mkdir www
Затем мы создаем образец файла index.html в нашем каталоге www:
$ sudo nano ~/www/index.html
Добавьте что-нибудь в index.html в соответствии с вашими требованиями. Однако мы добавим в наш файл index.html следующий тестовый контент:
<!doctype html> <html> <head> <title>Обслуживание index.html с Nginx</title> </head> <body> <h1>Как обслуживать index.html с Nginx </h1> <p>Nginx - это свободно доступный веб-сервер с открытым исходным кодом, который может быть обратным прокси-сервером, балансирующим нагрузку.</p> </body> </html>
Теперь нажмите « CTRL + O », чтобы сохранить содержимое, которое мы добавили в файл « index.html », находящийся в каталоге « www ».
После этого мы изменим права доступа к каталогу «www» с помощью команды chmod. «Chmod», что означает «режим изменения», — это команда, которую пользователи Linux используют для изменения прав доступа к файлам.
Здесь, в приведенной ниже команде, мы попытаемся назначить, прочитать, записать и выполнить разрешения всем, кто собирается использовать каталог «www»:
$ sudo chmod 0755 ~/www
Теперь откройте файл конфигурации Nginx «/etc/nginx/nginx.conf» в редакторе nano:
$ sudo nano /etc/nginx/nginx.conf
Файл «/etc/nginx/nginx.conf» содержит различные блоки, такие как http, сервер и расположение для конфигурации Nginx. Найдите в файле следующую строку:
include /etc/nginx/sites-enabled/*;
Вышеупомянутая строка заявляет, что файл конфигурации, присутствующий в «site-available», рассматривается как часть конфигурации Nginx.
Теперь добавьте следующий блок сервера в файл конфигурации Nginx:
server { listen 80; server_name test.andreyex.ru; root /home/andreyex/www; index index.html; }
Этот серверный блок указывает, что для всех подключений Nginx будет прослушивать порт «80», имя нашего сервера — «test.andreyex.ru», индексный файл для обслуживания с Nginx — это файл «index.html», а все файлы, связанные с сервер находятся в каталоге «/home/andreyex/www».
Нажмите «CTRL + O», чтобы сохранить изменения, которые мы внесли в открытый файл.
Выполните команду «nginx» с параметром «-t», чтобы проверить файл конфигурации и его синтаксис:
$ sudo nginx -t
Теперь перезапустите службу Nginx в вашей системе:
$ sudo systemctl restart nginx
После перезапуска службы Nginx зайдите в свой домен, который вы добавили в поле «server_name». В результате ваша веб-страница index.html будет обслужена.
Заключение
Nginx был разработан для обеспечения отличной производительности в качестве веб-сервера, особенно когда требуется обрабатывать много одновременных подключений или статического контента. Вот почему он оптимизирован для обслуживания статических файлов. В этом посте вы видели метод установки Nginx и то, как мы обслуживаем index.html с Nginx в своей системе.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
������ Apache
����� ��� ����� ������������, ��� ��������� � �������� /usr/local/etc/httpd/conf.
��� ����� ��������� ��������� ��� ������� ���������������� �������. �����
���� ��� �� �������������� ��� ����� � ������������ � ������ ������������,
������ ��������� ������. ������� ������ ��������� �� ���������.
������ ����� ����� ������� � �������, ����������
����� ������������, /usr/local/etc/httpd/conf.
����� �� ������� ��� ����� ������������.
��������� ��� ����� ������ ������� ���
��� ��������, �� ����� ����� �� �������������; ������� �������� �����,
� ��� ����� ����������� � ��������� �������:
$for I in *-dist
>do
>mycopy = �basename $i � dist�
>cp $i $mycopy
>done
������ � ��� ������ ���� ��� �����, �������
���������� .conf. � ����. 3-1
��������� ����� ���� ������ � ��������� ���������� ������� �� ���. � ���
����� ��-�������� ������ ���������� �������� ����� � dist;
�� �������� �� �� ��� ������, ���� �� ��������� ������ � �������� ���������
� ��� �������� ��������� � ��� �� ��������.
������� 3-1. ����� ������������
Apache HTTPd
��� ����� | ���������� |
Httpd.conf | ���� ������������ �������, �������� �������� ����������� �������� ������ ������. |
Srm.conf | ����� �������� �������, ��������� ������ HTTPd ������� �������������� ������. |
Access, conf | ���� ������������ ������� �������� ���������� � ���, ��� ����� ����� ������������ ������ � ������ �������. |
���������� �������� ��������� � ������
������������, ������� ���������� �������, ������ ��� ��������� ������.
�� ����� ���������� �������� �������� �� ������������ �������� Apache
�����, ������ ������ �� ���, ������� �����������
� ������ ������������. ������ Apache
����� �������� ����� ����� ������������ �����, ������������� ������� ��
���������� �� �����. ������ ���������� � ������������ ��������� �������
����� ��������, �������� ����������� ������������ �� ������� Apache:
http://www.apache.org/docs/. ������ ���������
� ������� /usr/local/etc/httpd/conf
(��� � ��� �������, � ������� �� ���������� ������ Apache)
� �������� �����������.
httpd.conf: ���� ������������ �������
���� httpd.conf
�������� ������������ �������. �������� ��� � ��������� � �������� ���������
���� ������, ���� ��� ����������. ����������� ���� �������� �������� ���
� �������� ��������. ��� �� �������� �������������� ������������, ������
����������� �� ���������, ������� ���, ��������, �������� ������, �����
��������� ������ ��������. ������������ �������, ������� �� �������,
��������, �������� ������, ������������ � �ServerAdmin�.
��������� ���������� �� ��������� ��������� �������� ��������, �������
��������� �� ���, ����� ��������� � ������������ ��������, �� ������� �
��� ��������� ���� �� �����������.
ServerType
��� ���� ��������� ��������� �� ���������
�������� ServerType standalone.
�������, ���������� � ���������� ������ (standalone),
����������� �� ����������� ��������� ��� ������� �������. ����� ���������
������������� ��� ��������� ������������������.
������� Apache
(��� � ����������� ������������ �������� UNIX)
��� ������� ���������� ��������� ��������� ��������� �����. ������� UNIX
�������������� ���������� ��� ������ ���������, � ��������� ������� ��
�������� ��������� ����������� ����� ��������. ����� ������� ������, ����������
� ���������� ������, �������� ������������� �� ������� ������� ��������
�� ����������. ��������� ����� ������, ������ �������������є ��� ��� ������������.
����� ����� ����������� ������, ��� �����������. ��� �������� ������ �����
�������� ��� ������ �������� StartServers
� MaxServers, ��� �����������
����.
� �������� ������������ ������ standalone
����� ��������������� �������� ������ inetd.
� �������� UNIX inetd ������������
����� �����������. ����������� ������� ����� ������������ ������������
����� �� ��������� � ��������� ���������� � �������, ������������� ��������
HTTP-���������. ���� ����� ���������� ������, ��� Telnet,
������ ������������ �� ����� ������ ���������� ������ ��������� �����.
���� ��� ������ �� ��������� ������� ����� ��������� ��������� ����������
������, ��� ����� ����������� ������������� �������� ����� ������ ���������
��������, ��� ������������ ����� � ����������� ������. ��������
���� �������� ��� UNIX �������� �������������
������ inetd. ���� /etc/inetd.conf
�������� ������ ������� �����, �� ������� �������� inetd. ���� ����� ����������
��� ����������� ������ �������� �����, ���������� � ������ �� ����������
�����, ���� /etc/services �
���������� ������������� ���� ������ �� ������� ��������� �������� �� ����������.
��� ��������� ������� ����� ��������� ��� ��� ��������� ���������������
������.
���� ����� �������� ������� ��� ������������
����� ������������ �����, �������� HTTP
�� ������� ���� ������. ��������� ��� ������ HTML-��������, ��� �������
����������� ����������� � ������ ������� �������, �������������� �������������,
��������� ��������� ���������� �, �������������, ��������� ����� �������,
�� ������ ������, ���� �� ������ �������, ����� �������������� ���������
����� ����������.
����� ����, ������ Apache
������ ��������� ���������� �� ����� ������������ � ����������� �� ��������������
������ ��� ������ ������� ����� ����� ������� inetd. ����� ��������� �������
�����������, ���� ���������, ��� ��� Web-���� ����� ���������� �������.
����������� ��� ������� HTTP-�������
������� ������������ � ���� ��������� ����� standalone.
Port
� ���� ��������� �������� ����� ��������
�����, �� ������� ����� �������� ��� ������, ���� �� ������� � ����������
������ (���� ������������ inetd, ��
����� ����� ������� ������ � ����� /etc/services).
��������� �� ��������� ��� ���� ���������
�������� Port 80. � ����� �����
Web-�������� �������� ������������ �� ���������, � �� �������� �����������
������ ��� ��������� HTTP � �������������
��� ������������� �� �������� ������� ������ Web-����. ���� �� ������ ���������
������ �� ���� ����� ��� �� ����� ������, ����� �������� ������ 1024, ��
��� ����������� ���������� ����������������� (root).
���� �� �� ��������� � ���� ������� ������������
�����������������, �� ���-���� �������� ����������� ��������� Web-������
�� ����� � �������, ������������� 1024. ��� ������ �������� �������� ��
���� � �������� ����� ����� � ����� URL;
������ ���������� ������ 8000 ��� 8080. � ���������� ��������������, ���
�� ��������� ������� ����������������� � ����� �������, � ������ �������
�� �����, �������� �� ���������.
HostnameLookups
� ����� ���������� �� ������������� �������������
������ Apache ����� ����� ����������
������, ������� �� ������� �������. � ����� �� ��� ������� ���� �����������,
������������� ������ � �������. ��������� HostnameLookups
���������, ������������ �� � ���������� ���� ��� ���������� (��������,
macl.shoop.com) ��� ������ ��� IP-�����
(��������, 152.2.22.81). �� ��������� ������ ��������� ��� ����������,
�� ���� ��������� ����� ������� ����� �����, ���������� ����� HostnameLookups
�������� ������� ��������� �������� �� ������. ��� �������� ������� ����������
������ �� �HostnameLookups off�.
User � Group
��� ��������� ������ �������������� ��������������
������������ � ������, ������� ������������� �������, ����������� � ����������
������. (���� ������������ inetd, ����������� ������ UNIX
������� ������� ������������� ������������ � ����� /etc/inetd-conf).
����� �������� ��� �����, ��� � �� �������� �����������, ������� �����
����� � ������ /etc/passwd �
/etc/group ��������������.
�� ��������� � �������� ����� ������������
����������� nobody, ��� �������� ������������
������� � ����� ������ ������ ����������. ����� ��� �����������, ��� Web-������
������� ������ ������ � ��� ������, � ������� �������� ������ �� ������
��� ���� �������������. ������������� �������� �������� � ������� ������������
������������ � ������������� ��� ������ Web-������� ��� ��������������.
����� �� ������������� �� �������������,
������� ���������, ��� ��� ���� �� ���������� ������� � ������� ����� ���������
��������� ������. �� � ���� ������ ������ ��������� ������ � ������������
����������������� (root).
� �������� �������������� ������ �������
������������ ������������� �����-������ ����������� ������, ��������� �
�������. ����� ������������ ������ news.
���� ����� ���������� ������� ��� ������� ����� ������.
�������� ��������, ��� ��� �����������
���������� ������ ��� ��������� ������ ������������ ���������. ���� ���������
������������ � ������ �� ���������� � �������, ������ �� ����� ��������.
��� ��������� Group, ��������, �� ���������
������� �������� �1, ��� ��
������ �������� �� �������� ����������� ��������������� ������.
ServerAdmin
��� ����������� ����������� ����� ����������
������ Web-����. ������ ������������ ����� � ����� WebMaster@���_cep�ep,
��� ���_������ �������� ������ ��������� ������ ������ �������.
��� ���� ����� ��������� ����������, ���� ���� �������� ���������.
���� ����� ���������� �������� � ��������������
�������� �������� ���� ������ �����������, ����������� � �����
/etc/aliases. ���������������� ������������
�����������������, �������� � ���� ���� ��������� ������:
webmaster: name
������ ����� ��� ������� ���������������
��� ������������, ������� ����� ���������� ������������� ������ Web-�������.
����� ��������� ��������� �������:
# newaliases
� ���������� ���� ������ ����������� �����
�����������.
ServerRoot
� ���� ��������� �������� ������� �������,
� ������� ����� ����������� ����������� ����������� HTTP-�������
Apache. �� ��������� ��� �������
/usr/local/etc/httpd. ���� �� �� ��� ���
��������� ����� �����������, ��� �� �������� ������ ��� ������.
BindAddress
��� ��������� ������������ ������ ��� �����������,
������� ����� ������ IP-������. � �� ������� ����� �������������, �������������
������ �� IP-������� ���������� ������ ����� ����������� �� ������� �����������
��������. ����������� ����������� ����� ���� IP-�����.
������� ��������� ����������� � �������
������ ������� � ����������� ��������� ����������� ����, � ������� ������������
�����������є �� ���. 108. �� ��������� ��� ��������� ����������������,
� ������ ���������� ������������� ���� ������� ����������.
ErrorLog � TransferLog
��� ������ ���� ���� �������� ��������
�������������� ���������� ������, � ������� �������������� ������ � �������
������� � ������� ��������������. ������ �������������, ��� �����, ������������
�� � ����� ����� (/), ������������� �� �������� ServerRoot.
��� ���������� ����� ������ ������. � �����,
��������� � ��������� ErrorLog, ������
��������� ��������� �����������, ������� ��������� �� �������, ����������
���������� CGI. � �����, ���������
� ��������� TransferLog, ������ ���������
��� ������� ��������. ���� �������� ��������� ���� ����� HostnameLookups,
�� ������ � ��������� �������������� ����� �����������. ���� ����� ���������,
�� �������������� ������ IP-������ ����������� ��������.
���� �� � ��� ��������� ������������� (���
�������) �������� �������� � ���� ����������.
PidFile � ScoreBoardFile
���� ������ �������� � ���������� ������,
�� � ��������� PidFile �������� ��� �����, � ������� �������� �������-������
��������������, �������� ���� ����������������� �����. ��� ���������� �����
������������ ��� ���������� ��� ����������� �������.
��������� ScoreBoardFile ��������� �������
Apache ������� �� ����������� �������������������.
�� ������������� ��������� ScoreBoardFile �� ��������� ��������� ��� ������������
������ Status. ���� �� � ��� ���������
������������� (��� �������) �������� �������� � � ���� ����������.
ServerName
� ���� ������ ������ ������ �����������
��� ������ ������� � ��� ����, � ������� ��� ���������� � ������
URL (�� ���� http://www.�M�_�a�e��_�������/).
��� ������ ���� ��� ����������, ������������������ � ������� ���� ��������
����� ����������� ��� ����������.
CacheNegotiatedDocs
��� ��������� ������������� ��� �������������,
���������� ����� ������-������ � ������, ���������� ��� ��� ����������,
�������� �� � ���� � ���������� �� ����������� ����� ������ ����, �����
����������� � ��������� ����� �����. ��� ��������� ��������� ������-�������
���������� ���������� ���������, �� ���� ���������, �� ����������
�����������, ����� ��� ����� ��������� CGI
��� ��������������� �������� ��������� ��������. ������ ������-�������
�� �������� ����� ���������, ��������� ������ ����������� �� ���������.
�� ��������� ��� ��������� ��������� (���������������� ��� ������ �������
�#�), �, ��������� �����, ��� �� ����������� �� �������.
Timeout
��� ���������� ������� � ��������, � �������
�������� ������ ���� ����������� ��������������� ������� ��� ����������
������� ������������� ���������������� �������� ������. ���� � ��� ���������
���������� � ���������� ��� ��� ���������� ���������� ������� �����, ���������
��� ��������. � ��������� ������, 20 ����� �������� ������ �����������
�������� �������� ������� ���������� ������� ��� ���������� ����������.
KeepAlive � KeepAliveTimeout
�������������� KeepAlive
�������� ���������� ��������� HTTP I.I
(������� �� ��� ��� ����� ������ �����������), ������������ �������� ���������
��������. HTTP 1.0 ��� ������ �������
�� �������� ������� ��������� ����� ���������� ����� �������� � ��������.
� ������� Apache ����������� ������������
��������� HTTP 1.1 �����������
KeepAlive, ��� �������� ����������� �����������
��������� �������� � ������ ������ ����������. ��������, ������ ��������
Web-�������� � �������� ����������� ������������� ����������� �� ���� ���������
����������, � � �������������� KeepAlive
��� ���������������� ������� ������������ � ������ ������ ����������. ��������,
��� ��� ��������� ����� ��������� �������� ��������. �������, ������ ������
����� ����������� ����� ����������� �������.
��������� �� ��������� ��� KeepAlive
�������� 5 � ������������ ����� �������� � ������ ������ ����������. �����
�������� ����� ��������� ����� 5, ����������� ��������� ���������� ������������������.
����� ��������� ��� �����������, ���������� �������� KeepAlive
������ ����. �������� KeepAliveTimeout
�������� ���������� ������� ����� ����������������� ���������. �������
�������, ���� ������ � ������ ������ ���������� ���������� ��� �������,
� ����� � ������� ���������� ������ �������� �� ���� �� ���������, ������
�������, ��� ������ ������ ��� ���������. �� ��������� ����������� ��������
15 ������.
StartServers
�������� ��������, ��� ���������
StartServers � ����� httpd.conf
����� ����� �������� MinSpareServers
� MaxSpareServers, ������ ������ ��������
�������� Min- � MaxSpareServers �����������
�����, ���� ������� ����������� � ���������� StartServers.
����� ���������� ���������� (standalone)
����� ������ ������� (ServerType) �
��� ��������� StartServers ��������
��������, ������� 1 (�� ��������� ����������� �������� 5), ���������� ��������
��������� ������ �������. ������ ������� ������ ���������� ������ ��� ������
������� ��������� ����������� �����, ��� ���� ���������� ��� ��������.
�������� ����� ������� ��������� � ��������
������������ ��� ���� �������� � ����, �������� ���������� � ���������
�� ��������� ������. ������������, ����� ��������� �������� ������� ������������
��������, ������ ��������� �������. �� ��������, ������, ��������� ����������
����������, ��� ���� �������� ����� ����������, ���� ������ ������ �� ��������
����� ����������� (����� 100 000 �������� � ����).
���� ��� ������ �������� � ���� ������
�������� �� ���������, � ����� �������������������� � ���� ����������,
����� ����� ����������� ��������� ��� ������ Web-�������.
MaxSpareServers � MinSpareServers
���� ����� ����������� � ��� �������� ���������
����� �������� � ����, �������� ���������� StartServers,
����� �������� ������������� ��� ������������ ��������. ��� ��������������
��������-������� �� ����������� ����� ��������� �������, ���� ��������
��� ���� ��������; ��� �������� � ������. ��������� MaxSpareServers ���������
����������� ����� ��������� ��������, ����������� � ����. ���� �� ������,
��� ������� � ��������� MaxSpareServers, �� ������ �������� �����������.
����������, ���� ��������� �������� � ���� ������, ��� ��������� ���������
MinSpareServers, �� � ���������� ������� �������� ��������� ��������������
����� �������. �����-����, ��������� ���� �������� ���� ���������� �� ������
����������� Web-��������.
MaxClients
��������� Web-������� ������������ �������
���������� �������� �� �������������� ��������, ��� ����� �������� � �������
������ ������-
���� ��������, ��� ��������� ����������
����������� � ���������. ��������� MaxClients
������������� ������������ ����� ����� �������, ������� ����� �����������
������������. ����� ����������� ���� ������ (�� ��������� � 150), �����
������� �������� �����. ���� ��� �� ������� ���������� �������������, ��
�������������� ������� ��������� ��������. ��������� ����� ���-���� �����,
��� ���������� ������-���� ������ ������.
MaxRequestsPerChild
� ���� ��������� �������� ����� ����� ������
���������� ������� � ���� ��������. ��������� ������������� ����� ����������
�������� (�� ��������� � 30), ����� ������� �����������, � ������ ��� �����������
�����. � ����������� ������ ��������� ����� ��������� �� ���� ���������
�������.
ProxyRequests � ��������� Cache
��� ��� ���� ��������, ������-������� ���������
� �������� ����������� ����� ��������� � ���������� ���������, ��������������
������������� �������� �����������. � ������� ������������ �����������є
�� ��� �� ����� ���������� ������� ��������� ������-�������. ���� ��������
��������� ProxyRequests � �������������
��������� Cache �������������������.
Listen
������������� ����������� �������� ���������
������� ������ URL ����� ���, �����
�� ��������� �� ��������� ����, ���� ���� � ���������������� �� ��� �����
������ ����� �������� �������. ��������, �� ������� www.webstores.com �����
������� ������ ��� ���������� ���������� ShoopSoft.
����������� ����� URL �������� ��, ��� http:// www.webstores.com/shoopsoft/.
� �������������� ��������� ����������� �������� ������, ������������� ����������,
��� �� �������� ����� URL ����: http://www.shoop.com/,
��� ����� � ���������� ���� � ��������� ���� ����������� Web-������.
��������� ����������� �������� ��������
����������� � ������� ������������ �����������є. ���� ��� �� ���������
������, ����������� � ���������� VirtualHosts.
�������� ���������
��������� ��� ��� ���� access, conf
� ���������, ��� ���������� ��� ����������� ���������. ����� ���������
���� � ���������� � ���������� ����� ������������: srm.conf.
srm.conf: ����� �������� �������
����� �������� �������, ��������������
����� ���� /usr/local/etc/httpd/ conf/srm.conf,
���������, ������ � ����� ������� ������ Apache
������ ����� ����� ��� �������� �������������. ��� ��������� �������������
����������� ��� ������� URL, �����������
������� �� ��������, � �������� ����� � �������� �� ����������, �� �������
�������� ������.
�������� ���� ���� � ��������� � ��������
�������� �� ��������� ����������, ����������� ��� ������ Web-�������. ���
� � ����� httpd.conf, ������
��������� � ��������� � ��� �������� ������ ���������� � ��������� ������.
������ ������ � ������, ������������ � ������� ������ (#), ������������
��������.
��� � ��� ����� httpd.cnf,
����������� �������� �������� �����������, ������� ������ ��� ���� �� �����������
������� ������������ ���������. ��� ������ ����� ������ �������� ���� �
�������� ����. ������ �� ���� ������ ������������ �������� ����� ��������
���������� ������ ����� srm.conf,
��������� �������������� ���������� Web-���� ����� ��������� ������������
� ����������� � ��� �������.
DocumentRoot
� ���� ��������� �������� �������, �� ��������
������� ������������ �������� ���������. �� ��������� ����������� �������
/usr/local/etc/ httpd/htdocs. ����� �������������
�������� � �����, ����������� � ������ ���������, � ��� ����� ������������
���������� ������.
UserDir
� ���� ��������� �������� �������� �����������
� �������� �������� ������������, �� �������� ������� ��������� � ��� ������,
���� �� ������ �������� ����������� ���������������� ���������. �� ���������
����������� �������� �������� public_html.
���� ��� �� ��������� ������������ ����������� ���������������� ���������,
������� �������
UserDir DISABLED
����� �������� ������� ����������������
��������� � �� ����������� �������� ����� ����������� ���� � ������� �����������
Web-�������������.
Directorylndex
��� ��������� ��������� ������ ��������
���������, ������������� �� �������, ������� �� �������� � ������
URL �������� ���������. ��������, � ������
URL http://www.shoop.com/ �����������
�������� ���������, ������� ����� ��������� ��������, ��������� � ���������
Directorylndex.
��������� �� ��������� ����������� �������� index.html,
������ �������� ������� �������� index.html
�� �������� DocumentRoot �� �������.
� ��������� Directorylndex
����� ������ ��������� ���� ������. ���� ������ ��������, ��������� � ������,
�� ������ � ��������, �� ������ ���� ��������� �, � ������ ������, ��������
��� �������. ��� �������� ������� ��� ����������������� ����������, ���������
����������, ���������� ���������, ����������� �� DOS,
�� ������������ ���������� ���� ������ �����, ��� �� ���� ��������. ��������,
����� ��������� � �������� ��������� ������� ��������� �����
index.html ��� index.htm,
��������� � ������ Directorylndex ���������
��������:
Directorylndex index.html index.htm
� ���� �������, ���� � ����� � ��� �� ��������
������������ ����� index.html �
index.htm, � �������� ��������� ��������
����� ������� ���� index.html,
��������� �� ����� � ������ ������.
��� ������� ������� ���� index.html
(��� ���� � ������ ������, � ����������� �� ����, ��� �� �������� ����
��������� ��������) � ��������
DocumentRoot
��� ��� Web-����, ��� � ��� �������� �������� � ����������� (�, ��������,
��� �������� ������� �������������). ��� ��������� ������������ �������
��������� �������������, ������� �� ����� ������� �������� �����������
���������.
��� ����� ������������� ��� ������ �������
������ ����������. �� ���������, ���� ������ ��������� ����� URL ��������,
�� ������ Apache �������� � ����� ������
������, ��������� � ���� ��������. ������ � �������� ��������� ����, ��
������ ������������� ����������� �������� ������ ���� ������ � ���� ��������.
��� �� ����������� ��������� ������� �������� index.html
��� ������� Web-�������; ���������� ������� ���������� ������ �� ���� ��������
��������. ��������, ���� ��� �������� �������� ������ ���������� MyHome.html,
�� ��� ������ ��������� ������� ��������� ���������� ������ ��� ���������
index.html, ����������� �� MyHome.html:
$ ln -s MyHome.html index.html
�������������, ����������� ������ �������
������������ ������������ � �������� ����� ��������� �������� ����
MyHome.html, �������� ��������� ���������
��������� Directory Index:
Directoryindex index, html MyHome.html
FancyIndexing
��� ��� ���� ��������, ��� ��������� �������
�� �������� �������� ������ Apache:
� ������� ����, ��������� � ���������
Directorylndex (���� ������� ����������),
� �������� ��� �������;
� ���� ���� Directorylndex
�� ����������, �������� ������� ���������� ��������.
���� ������� ����� Fancylndexing,
�� � ���������� ������������ ������ � �������� ������. ���� ��� ����� ���������,
������ ������������ ���������� � ����� ������� ����.
AddlconByType
��� ������ ����� Fancylndexing
������ ��������� ���� ������� �����, ����� ������ � ������ ������� �������
������������ � ������������ � MIME-������ ������. ������ ���������� ���������
������:
AddlconByType (.ALT, URL) MIME
� ALT � ��� ��������� �������� ������,
������� ������������, ���������� � ���������� ����������, ������ ������
������.
� URL � ��� ����� URL,
�� �������� �� ����� ������� �������� ���� ������.
� MIME � ��� MIME-��� ���� �����
MIME-�����, ���������� � ������� ��������.
����� URL /icons
�������� � ��������� Alias � ���� ��
�����.
���� ������ ���, ������, ����� ����������,
���� ������ �� �� ����������� �� ������� ����� ����������� �����, ��� �������
��������� ������� ���� ������.
Addlcon, Defaultlcon
�������� � ��������� Addlcon
��������� �������, ����� ������ ������� ������������ ��� �������������
������ � ���������, ����� ��� Defaultlcon
������������ ����� ����� URL ������, ���������������� ��� �������������
� �������, �� �������� ���� ��������� ������.
AddDescription, ReadmeName, HeaderName
� Indexignore
��������� ����� �������� ��������� ���������
���������� ���������� ��������. ��� Fancylndexing
� ��� ��������� Icon, ��� ����� ������������,
������ ���� �� ������ ����, ��������� � Directorylndex.
��������� AddDescription ���������
����������� � ���������� �����, ������� ������������ ���, ������� ���������.
� ���������� ReadmeName � HeaderName
�������� ����� ���������� ����� � HTML-��������� ��������������, �������
�������� � ����������. ��������� ����, ��������� � ReadmeName,
������ �������������� � ������������ ��������, � � ������ �������������
��������� HeaderName ������ �������
���������� .html � ��������
��������� HeaderName � ����� ������
�������� � ����� ���������. ��������, ���� �������� � ���������
HeaderName �������� �� ��������� ��������
HEADER, �� ������ Apache
����� ������ � �������� �������� HEADER.html.
��������, ��������� � ��������� ReadmeName, ������������
� ����� �������� ����.
� ��������� Indexignore
����������� ������ ������ � ������������, �� ���������� � ���������� ��������.
������ ����� ��� ������ �������� UNIX
����������� ����� ��������� ������ � ������ ��������� �����. ��������,
���� �� �������� �� ���������, �*-�, ������������ ��� ������� �����������
��������� �����, ����������� ���������� GNU emacs ���
������ ������ �������������� ������.
AccessFileName
���� ����������������� ������������� ����������
AccessFileName (��. ������ ������� � ������������є), �� ������
Apache ����������� ������� ����������� ����������
���������� ������� � ��������� �������������� ������������� ����������
�� ��������� ���������. ��������� ���� ��������� �������� ����������� ������
������ �������� ���������� � ����� �������� ������� (srm.conf)
���������� ���� ����������� ����� ���������� �������� � ����
.htaccess � ����� ��������. ���������
AccessFileName ��������� �������� ��� ����� �����. ����� � ���� ����� ��
����� ������������, ��� �� �������� � ��������� AccessFileName ��������
�� ���������.
DefaultType
���� ������ ����������� ���� � �����������,
��� �������� �� ������� �� ������� ���������������� �IME-����,
�� ������������ MIME-���, ��������� � ��������� DefaultType.
����� ������������ ���������� MIME-�����
����� ���������, ���������������� ��������������� ���� ����������
AddType.
AddEncoding
������ ��� ������, ��������������� ���
�������� ��������, ������������ ��������� ����� ������, ��� �����������,
��� ��������� ����� ��������. ��������� �������� ����� ���������� �������
����������, ����������� ��� ������������ MIME-�����. ��� MIME-���� �����������
� ��������� AddEncoding. �� ���������
����������� �������� ���������������� ���������� .Z
� .gz (�����, ������ �����������
compress � gzip
��������������), �, ��������� �����, ��� �� ����������� ��������� �����-����
������.
AddLanguage
���� �� ���������� ������������� �������������
��������� �� ������ ������, �� ��� �������������� ������������ ����� �
���������� ����� ����� ��������������� ���������� AddLanguage.
������������� �������� ����� ������ ������ �������� � ��������� ��� ������,
�������� � �fr� ��� ������������ �����
��� ��1� ��� ���������. ����������, ������� �����������, ����� ������������
�en�. ���� ������������ ����������� ����
home.html, � ��� ������� ���������, ��� ��������
������������ ������������ ����������� ����, �� ������ ���������� ��� ���������,
����� ������, ����� �������������� ���������� ����� ����� ������������
��� ������������� ����������. �� ��������� ������� ���������� .fr, �������
������������ ����� ������� �������� home.html.fr.
�������, ���� ���������� �������� home.html,
�� ������������ ������� ������ ��� � ������� �������� ��������� ����������,
������ ���� �� ������ �������� ��������.
LanguagePriority
���� �� Web-������� ������� ��������� ��
��������� ������ (home. html.fr, home.html.de, home.html.se),
� ������ ���������� �������� home.html,
�� ������� ��������� ������������ ����� ���������, �� ������ ������ ������,
����� �������� �������� �������. � ��������� LanguagePriority
� ��������� ������������������ ������������� ���������� ��������� ������.
�� ��������� ������ ���� ����������, ����� �����������, ����� ��������.
� ����������� ���� ������� ������� ����� ������� �������� home.html.fr.
Redirect
��������� Redirect
����������� ��������, ����� ��������� ���������� ������������� � ��������
���������� � ������ ������� �� ������� ��� ���� �� ������ ������. ��������,
���� �������� ShoopSoft ������ �������
���� ���������, ������������ ������������ �������� Linux,
� ��������� ������, �� ����� ���� ������� ������� ��������� ��� ����������
����� ��������� �� ����� ������, ����������� � ���� �������. ���� ������
����� URL ��� http://www.shoop.com/Linux,
� ����� URL ������ �������������
http://www.shooplinux.com/, �� ����� ���������������
��������� ���������� Redirect:
Redirect /Linux http://www.shooplinux.com/
� ����������, ��� ������� �� ���������,
���������� Linux � ������� ������ ����� URL, ����� �������������� �� ������
������ �������������.
Alias
��������� Alias
���� ����������� ������������� ������ � ����������, ����������� �� ������
� ��������, ��������� � ��������� DocumentRoot, �
��� ������������, �� � � ������ ���������. �� ��������� � ��������� Alias
����� ������ ���� ��������� � /icons,
������������ ����������� Addlcon �
AddIconByType. ���������, ��� ��� ������
Alias �� ����������������, �� ���� �� ����������
� ������� #. ������������������
��������� ����� �������������� ��������. ��������� ����-������ �������
Apache ������������ � �������������������
����������� Alias � ScriptAlias.
ScriptAlias
� ��������� ScriptAlias
�����������, � ����� ��������� �������� ������ ��������� CGI.
�� ��������� ������������ ��������� ��������� Script-Alias:
ScriptAlias /cgi-bin/ /usr/local/etc/httpd/cgi-bin/
��� � � ������ ��������� Alias,
������� ���������, ��� ������ �������� ������ �� �������� #. �������� ��
��������� �������� ��������� ���������� �������� � �������� ��������� CGI,
�������� �������� fortune (�������������
�������� ������). � ������ ��������� ����������� ����������� ����, �������
������� ����� ������������ ��� ������� ��������� CGI. �� ������ ���������
����������� �������, � �������� �������������� ������ � ����������������.
��������, ������ ������������� �����
URL /cgi-bin/, � � ����������������
�������� ��������� � �������� /usr/local/etc/httpd/cgi-bin,
� ���� ������ ��� �������� �� �������� CGI /usr/local/etc/httpd/cgi-bin/
fortune ������� ��������������� ���������
������� URL: http:// www.shoop.com/cgi-bin/fortune.
����������� ��������� �������������� �����
�������� ScriptAlias. �������� �� �����
��� ������� ������������ (�� ����� ���, ������� �� ���������), ��������
������� ������ � ��������� ����������� �������� CGI. ��������, �������
��� ������������ jem ������� ��� ����������
��������� CGI /jembin
� �������� /home/users/jem/html/cgi
����� ��� ������ ��������� ������:
ScriptAlias /jembin /home/users/jem/html/cgi
���� �� ���������� ���� ������������� ���������
� ��������� �� ����� ������� �������� CGI ��� ������-���� �������� ���
������������� � ����� �������, ������ �������� MIME-��� CGI. ��� �����
���������� �������� ��������� AddType.
AddType
��� ��������� ������� ��� ���������� �����
����� ��������������� �������� ���������� �� ������ ������������� MIME-�����.
������� �������� ������’���� ���������, ������� ����� ������������ ��������,
������ ������ Adobe Acrobat, �����
�������� ���������� ���������� .pdf.
��� ����� ������������� ������� �������, ��� �������� �������� ������
Acrobat (���� �� ����������), � ���������
����������� �������, ����� �� �������� ��������� ��������� ������ Acrobat.
��������� AddType ���� ����� �����������. ��������, ����� ������ �������
������� ���������� .pdf, �����
��������������� ��������� ��������:
AddType application/pdf pdf
������ Apache
����� ���������� ��� ����������� MIME-����, ����������� ������������� �������,
������� ����� ������� � ��������� AddType. � ������������ � �������� �����
srm.conf ��� ��� ���� ����������������:
#AddType text/x-server-parsed-html.shtml
#AddType application/x-httpd-cgi.cgi
������ ��������� AddType
��������� ������������� ����������� ��������� ���������; ���� ������� ��
��� ������ �����������, �� ����� ����� ��� ������ ����������
.shtml ��������� �������, ��� � ���������
������� ��������� ���������.
��������� ��������� ��������� ���������
������ �������� � ���� Web-�������� ������ �������� ��� ����� �����-����
�������. ���� ������ ����������� ����� �������� ��� ����� Web-������������,
��� �������� ������ ������������� �� ������� ��������� ������ HTML-��������
����� ��������� ��� �������. ��� ���� ������������� ����� ��������� ��������.
�������������� ���������� � ��������� ���������� ����� ����� ��
http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html.
������ ������������������ ���, application/x-httpd-cgi,
������ ������ ����������, .cgi.
���� ������� ������ ����������� �� ���� ������, �� �����
���������� ����� ��������� �������, ��� ���� �������� ����������� ���������
CGI. ��� �������� ��������� �������� ��� ������
�� �������, � �� ������ � ���������, ��������� � ��������� ScriptAlias.
��������� ������������� ����� ���� �����
�����, ������ �� ����� ������ #.
AddHandler � Action
����� �������� ���������� � ��������� MIME-�����
��� ������ ��������� AddType, ������
Apache ������ ����� ������� ������������ ��������������
��� ����������� �������������� ������ ������ ������������ ����� ����� ���������
�� ������������. ��������� AddHandler
������ � ������������ ���������� ����� ������������ ��������. ���������
�� ���� �������� �������� � ������, ��������, ������ �AddHandler
server-parsed shtml� ������ � ������������
���� ������ � ����������� .shtml
���������� ������� ������� ��� ��������� �server-parsed�,
������� ���������� �������������� ������ ������ � ����� ����� ���������
���������. �������, ��������� � ���������
AddHandler, �� ����������� ������ ��������
���������� �������� �������. ��������� Action
����� ������� � ������������ ������� �� AddHandler
�������� CGI. ��������, ��������� ������ � ����� srm.conf
������� ��������� �������, ��� ��� ������ �������� ����� � �����������
.foot ������� ��������� �������
foot-action. ����� ������� foot-action
�������� � ������������ �������� /cgi-bin/footer,
������������� ��� ������ ������ ������� foot-action.
AddHandler foot-action foot Action foot-action /cgi-bin/footer
��������� Action
����� ��������� ������� � ������������ MIME-���� ��������������� ������������
��������. ��������, � ��� ������� ��������, �����������, �� �������� ��
���������� ������ Web-���� ����������� ������������� �����. ���������
���� �������� ��� ������ ������� �� HTML-�������� ����� ��� ������ ���������
���������:
Action text/html /cgi-bin/mockery.pl
MetaDir � MetaSuffix
��������� MetaDir
� MetaSuffix ��������� �� �� �������,
��� � ��� <����>, �� �������������� �������� �������� �� �����. ���������
MetaDir ��������� �������, � ����� ����������� �������� �������� ��������
����� � ���������������. ��������� MetaSuffix
��������� �������, ����� ���������� ����� ��� �����. ������ ����� ��������������
����� ���������� .meta; ���,
�������������� ��� ����� index.html
����� ��������� � ����� index.html.meta,
������������� � �����������, ��������� � ��������� MetaDir.
����� �������������� ������ ����� ��� ��
������, ��� � ��������� ������� � ��������� HTTP.
��������, ����� �������� ������� ���� � ����� ��������� ����� ��������
���������:
�������, 5 ���� 1998 ����, �����
��������� � ���� �������������� ��������� ������:
Expires: Sunday, 5-Jul-98 12:00:00 GMT
ErrorDocument
��� ��������� ��������� ��������� � ������������
����� ������ HTTP-������� ������ URL
�� ��� �� �������. ���� ������������ ����� ������������ ��� ������ � ������������������
��������� �� �������, ���������� ��������. �� �������� ���������� �� �
������� ������������ �����������є, ��� ��� ���� �� ������ �������� ��
������������������.
��� ��������� �������� ��������� � �����
�������� �������. ����� ��������, ����������� ��� ������ ������, ���������
���� srm.conf � ������� �� ���������.
���� ������� � �������
������ Apache
������������� ������� ����� ������������, ����������� ������� �������������
������� ����� �������; ��������� �� ��� ������� ���������� � �����������
������ ���������� �� ����� Web-����. ���� ������� � ������� (/usr/local/etc/httpd/conf/access.conf)
��������� �������� ���� ��������� ����� ����������� �� ������ ���������
���������.
����� ����, ���� ���� ������������ ���
����������� ������� � ������ ������� ��������� ������������� � �����������.
����� �������� ��� ����������� ����������� � ������� ������� � ������������є.
��
������ ����� �� ���������� ���� ����������� �� ���������, ����������� ���
������ �������.
�������� � ��������� ���� access.conf.
�������� � �������� ����� ����� access, conf
������������� ��� �������� �������� �������: ���� ��� ��������
cgi-bin, ������ ��� �������� ����������,
� ������ ������������� ��������� ����������� ���������� �������� � ���������
���������.
������ �������� ��������� ��������� ���������
��������� CGI. �������� ��������, ���
� ����� ������������ ��������� ����� HTML,
� ������� ��� <Directory /usr/local/etc/httpd/cgi-bin>
�������� ������ ������ � ��������� ����� ��� ������������� �������� ��
��������� �������� cgi-bin. ��� ������ ��������� ��� </Directory>.
������ ��������� ������ ��������� ���������
�������:
<Directory /usr/local/etc/httpd/htdocs>
���� �� �������� �������� ��������� ��������
��� ���������� � ����� srm.conf,
������� ������ ��� ��������� � � ���� access.conf.
������ ���������, <Location>,
�������� ����� ������������ ������� Apache.
��� ������� ��������� <Directory>,
������ ������ �������� �������� ����������� ����� URL.
���� ����� URL ����� ��������� �� �������,
��������� ���� ���� ��������� ������ (������ *.html).
� ��������� <Location>, ��� ��������������
� ����� srm.conf, �������� �������,
������������� ��� �������� ����������� ��������� �������, /status.
������ � ���� ������� �������� ������ ������������� ������ nowhere.com.
����
�� �������� nowhere.com ��������� ������
������, �� �������� ����������� ������������ ���� ����������� � ���������
(���� �� ��������������� ������ mod_status.c.
��������� ���� access.conf
� ������� �� ���������. ������ ����� �������� ���������� Web-������������.
���������� Web-������������
���������� ��������� �������� ��������������
�������� ������ �� ������ Web-������������. ��� ��� ����������, � ���������
DocumentRoot ����� srm.eonf
�������� �������� ������� ��� ����� ����������. ������, ������� ������
�������� � ������������ ������� URL ����� �� �������� ������� �� �����
����������, �������������� ��������� �������� ������ URL: http://www.shoop.com/home.html.
������ ����� ����, ��������� � ���������
DocumentRoot, � ��������� � ���� ��� �����
home.html. ���� �� �� �������� �������� ��
��������� �������� DocumentRoot, ��
������ �������� ������� ���� /usr/local/etc/ http/htdocs/home.html.
�������� ��� ����� � ��������, ��������������� ��� ��������, � �������
ServerRoot ��� ��� ����������� �� �����������.
����� ������������ Web-������ ��-�������.
��������, ����������� �������������
�������� ����������� ����������� ��������������
��������� HTML ����� ��� ������ ���������
UserDir � ����� srm.conf.
��� ����� ������ ����� �������� ����������� � �������� ��������� ���� �������������,
�� �������� ����� ������� �����, ��������������� ��� ��������. �� ���������
��� ���������� public_html.
������ � ����� ��������� ������������ ���
������ ������ URL, � ������� ���� �
�������� ���������� �� ����� ������ (~), �� ������� ������� ���������������
��� ������������. ����� ������ �������� ������ � ����� ������� URL, ��
���� � ����� /etc/passwd ��������
��������� �������� ������������. ���������� ����� ����� ������� URL � ����
��������� ����� �� ������� http://www.shoop.com/~chris/index.html.
���� � ������������chris
���� �������� ������� /home/users/chris, a ���������
��������� UserDir �������� public_html,
�� �� ����� ������� ������ �������� ���� /home/users/chris/public_html/index.html.
��������� �����������
�������� � ������������ ��������� ������� URL �������� � ����� �������
�����, ���������������� ���������� Alias
� ����� srm.conf. ��� ���� �����������
������������� �������� �����, ����������� �� � �������� �������� ��� ����������
��� ��� ������������. ��������, ���� ��� ����� ������������� ���������
�� �������� /public/ftp/multimedia,
����� ������� �� ���������� �� ������� ShoopSoft
�� ������� ������ URL http:/ /www.shoopsoft.com/multimedia:
Alias /multimedia /public/ftp/multimedia
� ��������� ����� ������ Apache
��������� ������ ����� ������� �� ����� 50 �����������. ���� ���������
������� ����� �����������, �������� �������������� ������ MAX_ALIASES
� ����� /usr/local/etc/httpd/src/ httpd.h
� ������ ��������������� ������.
���������� ������
���������� ������ �������� ����� �� ���������
������������, ��������������� �������� UNIX.
���� �������� ��������� ��������� � �������� ������� ��������� �� �����-����
������ ���� ��� �������, ����� ���������� ������ ���������� ��������� ����������
Web-����.
��������, �� ������ �������� � ���������
DocumentRoot �������� �� ���������,
/usr/local/etc/httpd/htdocs. ������ ��
������ ������� �������� ��������� ��� ���������� ������� /public/html,
����� �������:
#ln -s /public/html /usr/local/etc/httpd/htdocs
�����������, �������� ��� �������� ������������,
�������� �������� ������ �� �������� ������� ���������� �� ��������� ��������
�������. ���� ��� �������� ��������� �������� ���������� ��������������
�������� �� ���������, /usr/local/etc/httpd/htdocs,
�� ������ �� ���� �� ��������� �������� ����� ������� ��� ������ �������
# In -s /usr/local/etc/httpd/htdocs /html
��� ������� �������� ������ � ������������
�������� ServerRoot, �������� �� �������������
�������� �� ���������� ������� ����. ��� ����� �������� ������� �������������
��������� ��� �������������, �� �������� �� ������ UNIX.
������������ ����� ��������, ��� �� Web-�������� ��������� � ��������
/html. � ���������� ����� �������� ���������������
������� � ��� ����� ������. ������ ���� ������ ������� ����� ����������
������, �� �����, ������������� �� ����� � ����������, ����� ���������
�� ����� ��������������� �������������� ����� � ������������� ������. �������
�� ������ �������� � ����������� �� ������ ���, ��� ��� ����������.
������ �����������
��, ����� ������� �� ������ ������������
����������� Web-����, � ������� ������� ������� �� ��������� ����� �����������
� ���������� ������ �������, � ����� �� ����������� �������������. ��������,
������ ������������ ������������� �������� �������� ����� ���������. ���������������
����� ��������� �������� �������������� �� �����������, ������� �������������
������ UserDir (����� ��������� ��������
� ����������� public_html ���������
�������� ������������) �������� ����� ������ ��������. ����� ������� �����������
��������, ��� ������ � ������� �������������, � �������� ������� � ������������,
��� ���� �������� � ������� � Web-�����������. ����� �����, ����������
�������� ��������� ���������, ���������������� � �� �� Web-���������, ������
������������� ��������� ��������� ���� ���������� ��� Web-����������.
���� Web-���� ����������� ����������������
����������� ��� ��������, �� ��� ������ ������ ����������� �������� ����������
����� ����������. � ���� ������ ����� ������� ����������� ���������� �
������������, ����������� ��������������� � �������� �������� ����������.
��� ���� ��� ��������� ������������� ����������� ����������� ����������
���������� �� ����� Web-���� ����� ������������� ���������� ������ �� ��
�������� ��������� � ����������� ��������� �������� ����������, ��� �����
������������� ������. ���� �������� �������� ��������, �� ��� ���� �����
����� �������, �� ����������� � �������������� �������� �������� � Web-�����������,
������� ��� �����������. ��������, ��� ������ ����, �������������� �� ����
������ ��� �������, ����� ������� ����� ���������� ������, �� ��������
� ����������� �����-���� ����������. ����� ������������ �������� ����������,
��������� ����������� Web-���������� ����������� ��������������, �������
�� ������������� � �������� ��������� �����.
�������, ����������� ���� � ���� �������,
�� �������� ������������� ������������ ������ ��� ��� ���� ������. �������������
������ ������� �� ��������� ����������� ������������� ������.
������ �������
������, ����� ��������� ������� ���������,
��������� ����� ��������� � ��������� ��� � ������. ������� ��������� ������
������� �������, ����������� � ����������� �� ����, ������ �� ����������
����� ��� ������ �� ������ inetd.
���������� �����
����� ��������� ������ � ���������� ������, ���������� ������ ��������
���� ������ � ��������, ����������� ��� �������� �������. � �������
Linux ���� ���� ��������� ����������
/etc/rc.d/rc.local; � ������ ��������
�� ����� ������ ��� /etc/rc.local,
���� ����� ������������� �������� ���������� �������� � ��������
/etc/rc2.d. ���� �� �� ������ �����, ����������
� ����������� ��������������, ������������ � ����� �������.
����� ���� ��� �������������� ����������
����� ����������, �������������� ������������ �����������������
(root) � �������� �������� � ���������. ��������
� ����� �������� ��������� ������:
if [ -x /usr/local/etc/httpd/httpd ]
then
echo “Starting HTTP Server”
cd /usr/local/etc/httpd httpd > /dev/console 2>&1
else
echo “Can’t start HTTP server!”
fi
��������� ���� � ������� �� ���������.
����������� ���� ������ ���������, ���������� �� ������ HTTPd;
���� ��, �� ������������ ��� ������. ���� ����� ������ ��� ��������� �
��������, ����������� ��� ������� �������, ��� �� ����� ��������� �� ���
���, ���� �� ����� ����������� ������������ ����������. ����� ���������
������ ����������, ����������, ������� ������������ �����������������,
������ ��������� �������:
ft cd /usr/local/etc/httpd �./httpd
���� �� ������ ��� � ����� /usr/local/etc/httpd/logs/error_log
�� ��������� ��������� �� �������, �� ������ ������� ����� ������� �������������
�������.
������ �� inetd
����� ������ ���������� �� ������ inetd,
����� ������ ��������� � ��� �����. ������ �� ���, /etc/services,
������������ ��� ����������� ������ ��������� ������ � ������������ ��
����������. ���� ��� ����������� ������������� � ���� ��������� ��� ������
������������ �������� NIS (����� ���������
��� ��������� YP), �� ���������� ����������
���������� ���� ��������� ��� ��� ������ ������� yppush,
����� ���������, ��������� � �����, �������� ��������. ����������������
������������ �����������������, �������� ���� /etc/services
� �������� � ��� ����� ������
http 80/tcp
������ ������, � ������� ���������� ������
���������, �������� ���� /etc/inetd.conf.
��� ���� ������������ inetd. � ��� ����������� ������ ������, ������� ������
������������ ����� inetd, � ��������, ��������������� ��� ����������� ����������.
�� ����������� �� ���������� �����������������, �������� ����
/etc/inetd.conf � �������� � ��� �����
��������� ������ (������������, ��� ��� ��� � ���� ������):
http stream top nowait root /usr/local/etc/httpd/httpd
httpd
����� ������ ������ �������� ��� �����������
������ UNIX. ������������� ����������
���������� ����������� �������� ������� Ultrix,
� ������� ������������ ��������� ������:
http stream tcp nowait /usr/local/etc/httpd/httpd
��������� ����, ������� � Ultrix
�� ������������, ��������� ������ inetd, � ������������ ������ ������������
������� ��������� ������. ������� Ultrix
�� ��������� �������� ��� ������������; �������, ����������� �� inetd,
������ �������� � ������������ ������������ root.
��������� ��� ������������ ������������� ������ ��������� ������ ����������,
��� ������� ��� ������ ��������� User
� ����� conf/httpd.conf ��������
��� ������������ �� ����� ����������, �������� nobody.
����� ���� ��� � ����� /etc/services
� /etc/inetd.conf ���������
����������� ������, ���������� ��������� ����� inetd �� ���������� � ���
������ ������������. ��� ����� ������� ����� �������� inetd (���
PID) � ������� ������ ������ HUP (hang-up).
��� �������� ��� ������ ��������� ������ (� �������� ����� System
V, ��������, Solaris � Irix,
�
������� ps ������� ������ ���������
������ ������������ ����� -aef):
# ps -aux | grep inetd
root 11253 0.0 3.4 156 256 p5 S 23:01 0:00 grep inetd
root 43 0.0 1.0 72 80 con S Feb 1 0:00 /usr/sbin/lned Kkill -HUP 43
�� ��������� ������� HUP
����� inetd ������ ��������� ����
/etc/inetd.conf � �������� ������������� ��
������� ������� HTTP-����������.
������������ �������
����� ���� ��� ������ �������, �������
�������� ��� ������������. ���� � ��� ��� ���� �����-������ ��������, �����
����������� ������� ���� �� ��� ��� ������ ��������. ���� Web-������� �
��� ���� ��� ���� �� �� ������������ ���������, ����� �������������� ������,
��������������� ����� ��������� �������:
$ telnet localhost 80
Trying 127.0.0.1
Connected to localhost.
Escape character is “‘]’
��� ����� ����������� ���������� � HTTP-������
�������. ����� ���������� ������� �����������, ����� ���������, ��� ���
��������. ��� ����� ������� ��������� ������, �������� �� ���������� ��������
������� Return:
HEAD / ����/1.0
����� ������ ��������� �������������� ���������
�������:
����/1.0 200 OK
Date: Friday, 12-Dec-94 05:44:30 GMT
Server: Apache/1.1
MIME-version: 1.0
Content-type; text/html
Last-modified: Sunday, 12-Dec-94 01:21:23 GMT
Content-length: 2342
Connection closed by foreign host
�����������, ��� Web-������ ��������! ������
����� ���������� � ������ ��� ����������, ���������� ���������� ��� Web-����!
������ � �������������
�� ��������� ������ Apache
������������� �������� ������� ������� ���������� ��������. � �����, �����
���� ��� ������� �������� � ����� �������� ������� � ����� ������������
������� �� �������, ����:
� �� ��������� � ����� �� ������������
�������� ServerRoot;
� � �������� ServerRoot
������� ���������� ������ �� ����;
� �� ������ � ��������� Alias;
� �� ��������� � �����������
publc_html � �������� �������� ������������.
�������� �� �� ��� �� ��������� �������
�� ������� ������� ���� �� ������ ����������, ������ Apache
������������� ����������� ������ ��������� ����������� ������� � �������
������� ������������� � ����������.
��� ����� ���� ��� �������. ������ �����������
� ��������� ����������� ����� ������������ ������� � �������,
/usr/local/etc/httpd/conf/access.conf. �
���� ����� ����� �������� �������� �������������� ������� ��� ����� �������
� �����. ������� ����������� ������������ ������ � ������������ ���������
�� ������� �� ������ IP-������� ��� ���� ����������� ��������. ����� �����
�������� �������� ��������, �������� ������ � ������� ������ ������������
������������� ��� ������� �������������.
� ������� �� ���� ���������������� �����������
�� ������ � ���������� � �� �������������, ������ ������ �������� ������������������.
������ ��������� ������������, �������������� �� ����� Web-������� ����
Web-�������, ����� ��������� �������� �������� � ����� �������� �����������
����� .htaccess. ��������, ������������
����� ������������ ����������� �������� ��������, ����������� � ������
srm.conf �
access.conf,
���� ��������� ��� ����������� � ���������� ����� ���������� ��������.
���� ������� ����� access.conf
���������� ��� ������ ������� Apache, ��
���� ��������� ��� � �������, ����������� ������������ �������. ����� ���������������
������������� ������������� ������������� � ���������� ��������, ����������
������ ��������� ������� ��������, ����������� � ���� �����. � �������
�� �������� � ������ httpd.conf
� srm.conf, ��������� � �����
access.conf ����� ���������, �������� ����������
����� HTML, � ������� ��������� ��������
�������� ������ � ����� ������. ��� ���������, ���������� ��������� �������
���������� ��������, ���������� ����������� ���������������. ���
������������ �� ������ ����� ��������� �� � ������� ������ (< � >).
��������� <Directory>
��������� �������, � �������� ����������� ����������� �������. ��� ��������
������ ���� ����������; ��������� ������������� ��������. � ��������, ������������
��������� ���������:
<Directory directory_name>
access control directives
</Directory>
� ��������� <Location>
�������� ������������ ����� URL, �������
����� ���������� ����� �������, ��������� ���� ��� ������������ ������,�����������
��� ������ ��������, ��������, *.html �
��� �����, ����� ������� ������������ ��������� .html.
� ����� URL �� ���������� ��������
��������� � ��� �������, ���, ������ <Location http:// www.shoop.org/index.html>
�� ����� �������� ���������� �������������� ��������� <Location>.
��� ������ ����������� ���������� ��������� <Location>;
<Location URL>
access control directives
</Location>
��� ��������� ���������� ��������
(access control directives) ��������� �����
�������, ���������������� �������� � ���������� �������� � ���� �������������
� ��� ������ � ���������.
����������� ���� �������� ������������
� � ������������� ������������� ������ .htaccess.
��������� � ��� �������� ����� ������������ ����� ����������� �����������,
���� ����� ��������� ��������� � ��������� AllowOverride.
Allow/Override
��� ���������, ������������ ������ � �����
access.conf, ���������� ��������� �����
���������� ������ ������� � ����������������� ������� .htaccess.
� ��������� ����������� ����������� ��������� ����� ���������� ��������,
��������������� ������� � ����� .htaccess,
����������� � ������ ��������� ���� ����� ��������, ���������. ���������
�������� ���������:
� None. ������ ���������� �����
.htaccess � ���� ��������. ���� �� �� �������� ������������ ��� ��������
����� .htaccess, ��� �������
���� ���������� ��� �����, ��������� ��� ������� ������������������ �������.
� �ll. �� ��������� ������������
����� ����� �������������� � ������ .htaccess
��� ���������� ��������� �������, ��� ������� � ���� ������ ������� �������������
�������.
� Options. ��������� �������������
��������� Options (��. ���� ������
�Options�),
� Filelnfo. ��������� �������������
� ������ .htaccess ��������
Add-���� � AddEncoding
(��. ������ �srm/conf: ����� ��������
��������, ���������� ������ ��������).
� AuthConfig. ��������� �������������
�������� AuthName, AuthType, AuthUserFile
� AuthGroupFile, ����������� ��� ������
��������� ��������.
� Limit. ��������� �������������
��������� ��������������� <Limit>.
��. ������, ����������� ��������� <Limit>,
� ������� ��������� ��������� ��������.
Options
��������� Options
��������� ��������� ���, ����� ������� ������� �������� ��� �������������
� ��������, ��������� � ������ <Directory>
��� � ����� .htaccess. � ���������
Options ����� ������������ ��������� ���������:
� None. � ��������� �������� ��
����������� ������������� �����-���� �������.
� All � ��������� �������� �����������
������������� ���� ������������ (����������� �� ���������).
� FollowSymLinks. ������ �������
���������� �������, ��������� � ��������� ��������.
� SymLinksIfOwnerMatch. ������ �������
���������� �������, ������ ���� ������� ���������� ����������� ���� ��
������������, ��� � ���� ������.
� ExecCGI. � ��������� ��������
����������� ���������� ��������� CGI.
� Includes. � ��������� ��������
��������� ������������� ��������� ���������. ������������� ��������� ���������
�������, ����� ������ ���������� �������������� ������ ���� HTML-������
����� ��������� �� ��������. ������ � ��������, ��� ��� ������ ���������
������, ������� �� �� ��������������� ��������� ��� �����. ���� ��� ����������
��������� ���������, ��������� �� �� ������ ��������� ������ ��� ������
��������� AddType, ��� ��� �������
� ������� �srm/conf: ����� ��������
��������
� Indexes. ������ ��������� �������������
���������� ��������� �������� ���������� ��������. ���������� ���� �����
��������� �������� ������ ������ ������ � ��������, �� �� �����
index.html.
� IncludesNoExec. ��� ���������
��������� ������������� � ��������� �������� ��������� ���������, �� ���������
������ �� ��� ������� ��������.
XBitHack
��� ����� ��������� ������, ����� �� ������
����� ��������� HTML-��������� ������ � ��� �����-���� ����������� ��������.
����� ��������, ���������� ���������� �����������, ��������� ��������
� �������� ������ HTML-��������, ��������� �������� CGI � �������� � ��������
��� �����, ���� ������� ���������� � ��������,
�������� ���� �� ���������� ���������. ���� ����� XBitHack
��������, ��� ��������� ������ ������� ���� �����������, � ������ ������
����� ��������� ���������. ������� ���� ����������� ����� ��� ������ ���������
������� UNIX:
$ chmod �+� ���_�����
��� ���_��,��� ����� �������� ������
�����, �������� �������� �� �������.
���������, ����������� � ����� ��������
���� ��������� ��������, ������������ ��
����� ������������ ����� �������� ������� (srm/conf),
�������� � ������� ����� �������� ��� ��������� ���������. �������� � ���������
����������, ��� ��� ���� ��������� � ������� �srm/conf:
����� �������� ��������, �������������� �������� � ���������� ����� ������������
��� ���� ���������:
� AddType
� DefaultType
� AddDescription
� Addlcon
� Indexignore
� Defaultlcon
������ ������������ � ������
������ Apache
������������� ����������� ���������� ������� � ��������� ��������� �� ������.
��� �������������� ��� ������ ��������� � ���������� ����� ������������,
���� � ���������������� ������ .htaccess.
����� �������� ������� �������, ���������� ������ �������� � ���� ���������
����������: AuthName, AuthType �
AuthUserFile. ������������� ��������� ���������,
AuthGroupFile, �� �������� ������������.
��������� AuthName
������ ������������ ����� �������� ������, � ������� �������� ������, �������������
� ������������.
������ ������ ��������� ���������,
AuthType, ��� �����. � ��������� AuthType
�������� ����� ������������� ������������, ������������ ��������. � ���������
AuthType ����������� ��������� ������ ���
��������, Basic � Digest.
���� ���������� �������� Basic,
�� ����� �������������� ����������� ��� UNIX
�������� ��������� ������, � ����� ��������� AuthUserFile. ���� ������
� ��������� AuthType ��������
Digest, �� ����� ������������� ����� ��������
������� ����������, �������� MD5. ��
����������� Web-�������� �� ����� ������������ ��������� Digest,
��������� ��� ����������� ���� �� �������������� ������������ ���������.
�� ������� ������������ � �������� ��������� ��� ��� ��������������� ����������,
����� �� ������ ��� ��������, ������������� ����� ������ ��������������.
� ��������� AuthUserFile,
������������ ������ ��� ��������� ������ Basic,
�������� ������ ���� � �������� ������� ������� Apache
� ����� ������� ������������� ��� ������� ��������. ��� �������� �����
������� ����������� ��������� htpasswd,
������� ����� ����� � �������� /usr/local/etc/httpd/support.
��������, ����� ���� ������� ��� ������������ mdw
��������� ��� ������ ��������� �������:
$htpasswd -� /html/secured/.htpasswd mdw
Adding password for mdw.
New password:
Re-type new password:
����� -� ��������� ��������� htpasswd,
��� ������� ������� ����� ���� �������. ���� ��� ����� �������, ���������
�������� ��������������� ������������ ���� �������.
���� ������ ����� Digest,
�� ������ ������� ����� ��������� � ��������� AuthDigestFile.
��� � ��� ��������� AuthUserFile, ������ ������� � ��������� AuthDigestFile
���� � �������� � ��� ����� �������.
����� ������� ���� ������� � ���� ��������,
�������������� ���������� /usr/local/etc/httpd/support/htdigest.
����������� ���� ������ ������������ ������������� ��������� htdigest
��� �������� ������ ��� ������������ jem:
$htdigest -� /etc/dlgest_passwd “shoop-users@www.shoop.coni”
jem
Adding passowd for jem. New password:
Re-type new password:
������������ �������� �� ������ �������������
��������� htpasswd �������� �����������
��������� shoop-users@www.shoop.com,
��������������� ����� �������� �������, � ������� ���������� ������������
jem. ������� ������������, ���� ������������ ����� � ����� ������� �����
������ ����� ��� ��������� �������. ����� ������������ �������� �������,
������������ ��������, ��� ������� ������ ��� � ������ ������ ��� �����
������.
����� ���� ��� ����� ��������� ����� �������������
�������������, ����� ��������������� ��� ��������� ������ �������� ���
����� ����������, AuthGroupFile. ����,
��������� � ���� ���������, ������ ��������� ������ ����� � �������������,
������������� � ����� AuthUserFile, ����������
������� ���� �����, ��������:
smers: mdw ewt jem merry mgd
����� ������ ������� �� �������
Apache ��������� ������ smers
� ����� �������.
<Limit>
��� � ��������� <Directory>,
<Limit> �������� ���������� ���������������.
��� ������������ ��� ��������� ����������� ������� � ������ � ��������
�� ��������� HTTP. ���������
<Limit> ����� ������������ ������ ������
<Directory> � ����� access, conf,
���� � ���������������� ����� .htaccess
(���� ����� �� ������������ ��������, ��������� � ��������� AllowOverride).
��������� <Limit>
��������� � �������� ���������� ���� ��� ��������� ������� HTTP,
� ������� ��������� ��������� ������ ���������, ������������ ������ ������
<Limit>: deny (��������), allow
(���������), order (�������) �
require (�����������).
��������� deny
� allow ���� ����������� ��������,
����� ����������� � ������� �������� ������ � ������ ���������. ���������
���� �������� ��������, �� ������ �� ��� ������� ����� �from�
� ������ �����������, ������� ������ ������ ��������� ���, ��������, ���������
������ � ��������. � ���� ������ ����� ��������:
� �������� �������, ��������
shoop.com ��� cia.gov.
� �������� ������, �������� grumpy.shoop.com
��� bhurma.cia.gov.
� IP-������ ������, ��������
115.23.42.5.
� IP-������ �������, ��������
115.23.42.
� ����� all,
���������� ��� �����.
� ��������� order
�������� �������, � ������� ������ Apache
������������� ��������� deny �
allow. ���������� ��� ���������� ��������:
� deny,allow. ������� ������ �������������
��������� deny, � ����� � allow.
� allow,deny. ������� ������ �������������
��������� allow, � ����� � deny.
� mutual-failure. ������ ����������
� ������� ���� �����������, ���� �� ��������� � ������ allow.
��������� ��������� � require.
�� ����� ������������ ��� ������������ ��������� ������ ��������. �� ���������
��������� ������ ��������� ������
���������. ����� ���������� �����
������� ����� ������������� ��� �������� �����, �������� � ���������� AuthUserFile
��� AuthGroupFile. ����� ����� ���������������
�������� ������ valid-user,
����������� �������, ��� ������ ������������, ��� �������� ������������
� ��������� AuthUserFile, ������ ����
������������ ������ � ������ ����� �� ����������� ������.
���� �������� ������ ����� .htaccess,
������������ ������ ������ �������������� ������������� ������ nsa.gov:
AuthUserFile /home/users/onorth/www/secure/.htpasswd
AuthName SecurityTest
AuthType Basic
<Limit GET>
order deny,allow
deny form all
allow from nsa.gov
require valid-user
</Limit>
������ ��������� �������� ���������
<Limit> � ��������� ������������������:
1. ��������� ����� ������.
2. ��������� ������ ������������� �� ������
nsa.gov.
3. ������� �� ������������� �� ����� ������
����� ����� � ������, ���������� � ����� /home/users/onorth/www/secure/.htpasswd.
���� ������ ������ ��� ��� ��������, ��
�� ���� ����� ������������� ����� �� ������� ��������.
���������� ������������� �������������
� �������������� ������ DBM
������������� ������������� ��� ������
����������� ������ ������� ������������ ����� �������� ������ ������ �����
� ������� ����������. �� Web-�������� � �������� ������� ������� (�������
���������� �����) ���������� ��������� ��������� ������� �� �������� ��������������
������ �����. ������ Apache �������������
����������� ������������ ��� �������� ������� � ���������� � ������� �����
���� ������, ���������� DBM-�������. ��� ����� ������������ ����� �����������
���� ������, �������� ���������� � ������������ �������� (������) �����
(��� ������������), � ������� �������������� ��� �������� ������ ����������
�����.
��� ��������� DBM-������ ������� ���������
������� ��������� �����. ������ �����, ���������� ������ Apache.
��� ����� �������������� ������������ ����������������� (root),
��������� � ������� /usr/local/etc/ttpd �
������� ������� �kill -TERM ‘cat logs/httpd.pid’�
(����� ������������ ������ ��������� �������� �������).
����� ���� ��� ������ ����������, ��� ���������
��������� ��������� DBM ����������
������ ��������������� ������ � ��������� ��������� ����� �����:
� ��������� � ������� /usr/local/etc/httpd/src
(���� ����, ��� �� ���������� �������� ����� ������� Apache)
� �������� � ��������� ���� Configuration.
� ��������� � ������ 78 � �������� ����
-Indbm � ��������� EXTRA_LIBS=.
� ��������� � ������ 242 � ������� �� ������
�# Module dbm_ath_module mod_auth_dbm.o�
������ ����������� �#�.
� ������ �������������� �������� ���
������, ����� ������ �������������� ������
� ����� � ������, ������� �������� ��������� � ����� access.conf
����� �������, ����� ������ ������ ������� �������������� DBM-�����. ��������
� ��������� ���� access.conf �
�������� ��������� AuthUserFile �����
����������, AuthDBMUserFile;
���� ��������� ������������ ������, ��
�������� ��������� AuthGroupFile ����������
AuthDBMGroupFile. �������� ����� ������, ���������
� ����������, ����� �������, ����� ������ ����� �� ���� ������, ��������:
AuthDBMUserFlle /etc/dbm_htpasswd AuthDBMGroupFlle /etc/dbm_htGroup
������ ����� ��� ������ ������������� ������.
� �������, �������� ���� �������, ����������������
���������� dbmmanage, ����������� �
�������� /usr/local/etc/httpd/support.
��������� ������ ������������ ���������� ������������ � ���� ������� /
etc/dbm_htpasswd:
# dbimnanare /etc/dbm_htpasswd adduser bob
xists2me User bob added with password xlsts2me!, encrypted to XXLlyUj92/ZyI
��������� dbmmanage
����� �� �������� � ������� �������������� peri,
��������� � ����� �������. ��������, dbmmanage
�� �������� � ��������������� peri
������ 5.001, patchlevel 1m. (�����
����������, ����� ������ ������������ � ����� �������, �������� �������
�peri -v�.) ������ �������� �����, ���� ����������
peri 4.036 (��������, � ��������/usr/bin/perl4.036
��� /usr/local/bin/perl4.036). ��������
������ ������ �������� dbmmanage � �#!/usr/local/bin/perl�,
������ � ��� �������������� ���14.036, ��������, �#!/usr/bin/ ���14.036�.
��� � ���, ��� ����������� ������� ���
��������� ��������� DBM-������ ������� � ����� �������, � ���������� �������
������ ������ ������� � ������ ������ ����������� ������.
����� ��������� ���������� �� �������������
��������� DBM-������ ������� ����� ����� � ����������� � �������
Apache �� ������ http:// www.apache.org/docs/auth_dbm.html.
����������� ������������
��������� ����������� ������
������� ����������� ������ ��������, ����� ���������� ����� ���������
���� Web-����, �� ��������� �� �� ��������� ������������, ������������
� ������ ����. �������������, ����� �������� ����� ���� http://www.shoop.com,
���� ��������� ������ ��� ���� ������� ��� ���� ���� ������. Web-����,
������������� �� ������������ ������������ �� ������ �������, ������� �����
���� http://www.websites.com/ shoop
��� http://www.shoop.com/shoop.
� ��������� ������, ������ ����� http://www.shoop.com,
�� ��-�������� �������� �� http:// www.websites.com
� �������� /shoop �������� ������������.
��� ������� Apache
���� ����������� ��� �������� ����, ����������� Web-���� ����� �����������
���. ������ ������� ������, �� � �������� �� ����� ����������. ������ �������
�����, �� ������������ ��� ����� ������ ����������� ��������, ��������
Netscape Navigator ������ 2.0 ���
����� �������. �����, ����� �� �������� ���������� ����������� ������ ���������������,
�� ��������� � ����������� ����� ��������� ���������� � ����������������
�������.
������ ������� �������� � ���� ��� ����.
������ ����� ������� ���������������� ��������� IP-������� ���, ����� ���
��������� �� ���� � ��� �� ������: ��� Web-������. ���� ������ ��� ������
������� ��� ������� ������������� ��� ���������. ��������� �� ��������
� ������� ���� (name server) �����
���� �������� ������, ��� �A-record�.
� ���� ������ ������ ������� ��������� IP-����� ��� ������ ����� ������
�����, �������� 10.1.12.236 ��� www.virtualpizza.com.
�� ��������, ��� ������ ������ �������
��� ������ ������������� ��� ��������. �������� ������ ������� ����������������
� ����������� InterNIC. ����������
� �������� ��������� �� ���������� Web-���� InterNIC,
����������� �� ������ http://rs.internic.net/help/.
��������� ����� �������� ��������� ������
���������� �� ����� ������� ��� ���������� IP-������� ����� ���� �������
��������� (��������, ������� ����� Ethernet).
����� ������ �������� ������ �������� ����������, ������� ��� ����������
������� ifconfig, ��������:
ft ifconfig
ethO Link encap:10Mbps Ethernet Hwaddr 00:20:OD:OA:24:FF
inet addr:10.1.12.15 Beast: 10.1.12.255 Mask
255.0.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets: 13802051 errors:19 dropped:19
overruns:5
TX packets: 8357357 errors:0 dropped:0 over
runs:0
Interrupt: 10 Base address: 0�300
� ������ ������ ������� ��������� �����
�������� �ethO�, ������� ����� Ethernet.
������ ���������� ������ ������ �����-��������� � ������ ����� ��� ���
�� ����� �����.
���������������� ������������ �����������������
(root), ��� ������ ����������� ���� �������
ifconfig ������� ��� �������� ���������� ����� ������� ��� ������� IP-������:
ftifconfig ethO alias 10.1.12.256
������ ������, ��������������� ��� ���
������� ������, ��� � ��� ������ ����������, ����� ��������� � ���� � ��
�� �����.
�������, ���������� ������ ��������� �
����� ������������. �������� � ��������� ���� httpd-conf
� ������� ������ ����������� �� ������ �����, ������� � <VirtualHost
host.foo.com> � ������ ������� </ VirtualHost>
������������. �������������� ��� ������, ����������� �������� ��������
��� ������ �������. ��������� ������ �������� host.foo.com � ����������
<VirtualHost> � ServerName
��� ����������,
������� ��� ��������� ������������ (� �����
������� � www.virtualpizza.com).
�������� � ��������� DocumentRoot ������
��������� �� ��������� ������� �������� ����������, ���������� ���������������
��� ����� �������, �������� /usr/Iocal/etc/httpd/pizzadocs. ���������
ErrorLog � AccessLog
�������� ��� ����� ��������� ���������� ����� ��� ������� �� ��������,
������� ����� ����� �������� ����� ���������� ������ ����� �������, �����
��� ��������������� ������ ��������, �������� ���� ��� ����� ���������
� ����� ��������.
��� � ���, ��� ����������� �������. �������������
��������� ������� ���� � ������������ �������� ���������� ���� �������
���, ��� ������� ������ ��������� ����/1.0 �� ������������� �����������
������������ ����� ����� ����������. ������� �������� ������� �� �����
����� ��� IP-�����, � ����� ���������� � ����� �����, �� �������� � ����
��� ���. ������� � �������� ��������� ���� ����� ������ ��������� IP-�����
��� ������� �������. ������ ����� ������� � ��������� �� �����������, �
���������� �� ��� ������� ������ �������� ������� ����� �������.
������ ������� ����������� � �������������
������������ ����/1.1, ������ ��������� HTTP,
�� ��� ��� ����������� � ������ �����������. � HTTP/I.I
������������� ��� ������� ����������, � ������ Apache,
����� ��� � ��������� �������� (������� Netscape),
���������� ���� ������������. ��� ��������, ��� ����� ���������� ���������
�������� �� ����� IP-������. ��� ����������� ����������� � ��� ����. ������
��� �����-���� ������ ������� ������� ������������� ��� ���������. �������
������������� ������ ������ ��� ������� ����������ϔ ������� ���������,
���������� ������� CNAME, ����������� �� �������� ��������� � Web-��������.
� ����������� ���� ������� ������������� ������ ��� �� ������� ������ CNAME
��� �������� www.virtualpizza.com, ����������� �� ��������� ������, ��������
pizza.food.net.
������ ��� ��������� � ��������� �����
���������� ���������: ���������� ������� ������ ����������� �� �����������
� ��������� Virtual-Host ����� �����
httpd.conf � ��������� ������ ��������
�� ��������� ���������� � ����� ����������� Web-�������.
��������� ������-�������
��� ��� ����������� ����, ��� ������������
��������� CacheNegotiated-Docs, ������-������
��������� ���� ���������� ����� �������� � ��������. ������ ����������
� ������ ������-�������, � ��� ���, � ���� �������, ���������� ��������
��� �������, ����������� ��������� ����������. ������ ����������� ��������,
�� � ��� ���������� ����������� ������-������ ��� ��������� HTTP
(��� �������� �� ���. 8). ���� ������ ����� ���������� ������-�������,
������� ������������� ������ � ��� ������ ����������� �������� � ����������
�������. ��������� ������ � ����� �������� �������� ������-�������. ������-������
�������� ����� �������, ��������� ���
�������. ������ ����� �������� ������������ � ����� ������ ����������,
����� ���� ��������� �� ������������, �������������� ���������� ������
����������� ����� ������������, ������������ �� ������ ��� �������.
������ �������� ������ ������������ � ���
��������� ������� � ����� ������������� ����������. �� ���������� �������
��������������, ��������� � ���������� ������, ���������� �������� �����
���� ��������� ��� �������� �� ������-�������. ����� ��������� ������
���������� ��� �� ��������, ������-������ ������ �������� �����, �����������
��� ���������� �������, �� ��������� �� ���������� � ��������. ���� �����
������������ �������� ������������ � ���� ���������� ��������, ��������
����� ��������� � ���������������, ��� ���������� ������� ������� �����
����������� ���������� � ���������.
��������� ������ Apache
� �������� ������-������� ����� ������. ��� � ��� ����������� ������ ������������,
��������� �������� �� ��������� �������� ������ ��������� � �����, � �����������
�������, �������������� � ������������ ����. �������� � ��������� ����
httpd.conf, ��������� � ������,
�#Proxy Requests On�. ���� ��� ��������� ������
�������� �������� ������, �� �� ��������� ���������� ���������, ������
������� �� ���� ������ ������ ����������� #. ������ ������� ���� �� ���-����
�������� �����������, ������� �� ���������� �����, ����������� � �������
�������������� ������������ ���� ����� ������������� ���������.
������ � ������ �������� �� ��������� �����
��������� CacheRoot, � ������� ��������
������� ��� �������� ���������� ����������. ������� �� ���� ������ (� ��
����� ���� ������ �������� Cache) ������
����������� � �������� �� � ������, ���� �������� � ��������� DocumentRoot
���������� �� ��������� �� ���������.
�� ������ ���������, CacheSize,
����������� ����� ��������� ������������ � ����������, ���������� ��� ��������
������������ ����������. ������ ����� ��������� ���� �����, �� ��� ������
��� ��������, �� ������ ������� ����� �� ������� ����, ����� ����� ���������
�� �����. ��������, �������� �� ���������, 5 ��������, � ����������������
�������� ����� ��������� ��� �������, ������������ ����������� �����������
��� �������� ����� ��������: ������ ��������� �� ���� ������� ������������,
����������� ����������� ������-������� Apache,
�������� 7 ��������. ��������� CacheGcInterval
������ ��������, � ������� ������������ �������� ������� ������� ����;
�� ��������� �������� ������������ ������ ������ ����.
��������� ��� ��������� ��������� �������������
����� ���������� ��������� � ������� ����. ���������, ������������ ���
������ ��������� HTTP, ������ �����
���� ��������� ����� ��������, ����������� � ��������� ��������� ��� �
������� ��������������. ���� ���� ��������� ����� �������� �� ��������
���� ��� ������� ��� ������� �������, �������� ����������� ��� ���������.
� ��������� CacheMaxExpire ��������
������������ ���������� �������, � ������� �������� �������� ����� ����������
� ������� ����, ��� ����������� �� ��� ����� ��������. �� ��������� �����������
�������� 24 ����. ��������� CacheLastModifiedFactor
���������, ����� ������� ������� ��������, �� ������� ����� ��������. ��������
����� �������� ���������� �� ���������� �������, �������� � ������� ����������
��������� ���������, � ���������� ��������� ����������� � �������� ������
����� ��������. ��������, ���� ��������� ��������� � ��������� ���� �������
24 ���� �����, � � ��������� CacheLastModifiedFactor ���� ��������� ��������
�� ��������� � 0,1, �� �������� �����
������ �� ������� ���� ����� 2,4 ���� (24 �������� �� 0,1). ���� ���� ����������
��������� ����-
��, ��� �������� � ��������� CacheMaxExpire,
�������� ��� ����� ����� ������ �� ��������� �������, ���������� � ���������
CacheMaxExpire. ��������� ���������, ��������� �� ������� �������� ����������,
������������ �� � HTTP, � � �������
�����������, �� ���������� ���������� ���������� � ������ ��������. ���������
CacheDefaultExpire, � �������� �� ���������
��������� � ���� ���, ���������� ���������� �������, � ������� ��������
�������� ����� ���������� � ������� ����, ���� ���� ���� ���������� ���������
��������, ������������� � ��������� CacheMaxExpire.
�������, ��������� NoCache
������������� ����������� ��������� ����������� ����������, ����������
�� ��������� ��������. ����� ������� �������� ��������� ��������, ��������
www.virtualpizza.com, ��� ����� �������,
�������� shoop.org, � � ���������
������ ����� ��������� ����������� ���������� �� �������� ����� ������.
����� �� ������������, ������ �������������
������� �� �������� � ����� httpd-conf,
�������� ��������� Proxy Pass. ���
��� ���� ������ ����������� ����������, ��� ������� ������ �����������
�������� ��������������� � ������-�������, � ��������� ������� �� ����������.
��������� ����� ��������� ���������:
ProxyPass /mirror/toppings http://pepperoni.org/docs
� ��������������� ������� �������
Apache ������� ����������� ��� ���������,
���� � ������� ���������� � /mirror/toppings,
�� ��������� Web-���� http://pepperoni.org/docs
� ������������� �� ��������, ��� ����� ��� ��������� ��������� � ��������
������� �������. ��� ���� ������ ����������� Web-����, ��������� ����������
����������� ����������� ��������� � ��������� Web-��������, ��������� ���������
������ URL. ������ ������� �����������
���, ��� �� ������� ������������ ����������� ���������� (����, �������,
�������� ��������� Cache), ��������
������� ������� �������� �� �����������. ��������� ProxyPass
��-�������� ��������� �� ������ ����������, ������� ����� ����� ����������
��, ������ ��� ���������� � �������� ������ �� ����� Web-�������.
����������, ����� ������������� ���������
�� �������
���� �� ���� ��������� ErrorDocument
��������� ������� �� ������� ����� �������������� ������������. ��� ������
������������� �����, ����������� ��������� ���, ��� ����� ������������
� ������ �����-���� ���������, ��������, ����� ������������� �������� ��
������ ��� �������� CGI �� ���������
�������� ����������� ������. ������ ��������� ErrorDocument
��������� �������� �� ������������ �������, ���� ��� ��������� ����������,
��������� ������, ������������ �������� CGI. ������������ ���������� �����
�������������� ��� �������� ������� �����
�������������� ��������� �� ������ ���� ��� �������� ����� ��������� ������
�� ������ � ���������� �����.
�������� ���������� ��������� ErrorDocument
�������� ����� �������. � ��� ���������� ��������� ������, ������������
�������, ���� �����, �� ������� ���������������� ���������� ������. ���������
���� ���������: <ErrorDocviment
�o�_o�u��u
����Ĕ, ��� ���_������ ���������� ����� �� ����� ������ HTTP
��������� (����. 3-2), ������� ������������ �������� ���������, � �����
� ��� ���� ����� URL, ���� �����,
������������ ������� � �������� �������� ������.
������� 3-2. ���������������� ���� ��������
HTTP ��������� � �������������
���� �������� HTTP | �������� |
200 | ���: �������� ���������� � ������ � ���� ��������. |
302 | �Found�: ��������� �������� ��������� �� ������� ������ URL. |
400 | �Bad Request�: ������ �� ���� ���������� ������. |
401 | �Unauthorized�: ������ �� ����� ����� ������������ ������ � ��������� ��� ����������� ����������. |
403 | �Forbidden�: ������ �� ��� ����� ��������������� �� ������������� ��������� ��������. |
404 | �Not Found�: �������� �� ������. |
500 | �Server Error�: �� ������� ��������� ������. |
501 | �Not Implemented�: ����������� ����������� �� �������������� ��������. |
� ��������� ������� ������������� ��������
ErrorDocument ��� ��������� ����������������
������� �������� ��������� ���������� ��������� ErrorDocument:
ErrorDocument 401 http://www.subscribe.coni/form.html
ErrorDocument 404 “There’s nothing here by
that name,
Check your spelling.”
ErrorDocument 500 /errors/blaine_interni.html
� ������ � ������� �������� �������� ������������
����� URL, �� �������� ����� ��������� ������. � ������ ������ ��� ��������
�� ������
�������, � � ������� � �������� ���������
�� ������ ����� ��������� ��������� ��������. �� ������ ������� ��������
� �������� ������ ����� �������� ��������� ������. �������� ��������, ���
��� ������ �� ������� � �������, � ������ ���������� � ������� �������.
��� ������ ��������� �������, ��� ��� ����������� ������� ������� ����������������
��� ��������� ������, � �� ��� ����� URL.
����� URL � ��������� ErrorDocument
����� ������ ����� HTML ��������� ��
�������� CGI, �� ���������� �����������
���������� � ��������, ������������� ���������� ������. ������� ������
������ �������� ������������� ��������������� NCSA
������� (�� ������������ ��� NCSA HTTPd
1.4, �� ��������� �������� � � �������� Apache). ����
��������, ������� �������� nph-eror.pl,
������������� ��� ���������������� ��������� �� �������, ������������ ��������,
� �������, ��������������� ����������� ����� �������� ��� ���������. ���������
�������� � ��� ������� ��� ��������� CGI (��������, /usr/local/etc/httpd/cgi-bin),
���������, ��� �������� �������� ����������� (�chmod 755 nph-error.pl�
� ��������� ������ UNIX), � ����������
��������� ���. ����� ������ ������ ��������� �� ��������� ��������� ���������,
�������� ���� �� �������� ErrorDocument
�������� ��������� �������:
ErrorDocument 404 /cgi-bin/nph-error.pl
� ���� ������� �������� ����� ����������
��� ������ ������� �� �������������� ��������. � ���������� �� ��� �����
������������� ���� ��������, �� ����������� ������������ � ��� ����� ��������
� ��������� � ��� ����������� ����, ��������� � ���������� ������.
����� ��������� ���������� �� ���������
������ � �������������� ��������� CGI ����� ����� � ������������ � ��������
NCSA �� ������ http://
hoohoo.ncsa.uiuc.edu/docs/setup/srm/ErrorDocument.html.
��������� ������ �������
������������� HTTP-������� � ��� �� ������
���������� ��������� � ��������. ����� �� ��������� ��������������, ���������
��������� ��������� ������� ����� �������� ������.
������� � ���������� �������
���� ������ ������� ������������ �� ������
inetd � ��� ���������� ��������� ������ �
Web-������� �� ��������� HTTP, �������
��������� ������ inetd ������ �������������� ����� �������. ����������������
������������ ����������������� (root),
��������������� � ����� /etc/
inetcLconf
������, ���������� �� ������ �������:
�http stream top nowait root /usr/local/etc/httpd/httpd
httpd
��������� ���� � ������� �� ���������.
����� ��������� ��������� �������� ��������, ���������� ������� ������
inetd ������ hang-up,
��� �������� ��������������� � ������� ������� �������� �� ���. 97.
���� ������ ������� � ���������� ������
� ��� ��������� ��� ����������, �� �������������� ������������ �����������������
(root) � ������� ��������� �������:
#cd /usr/local/etc/httpd
#kill ‘cat logs/httpd.pid’
���� ������ ������� � ���������� ������
� ��� ������������ ���������� ����������� ������������ ���������� ������
��� ���������� ��������� � ������ ������������ �������, ���������� ����������
���������� ������� (��� ������� ��� ������ hang-up).
��� �������� ��� ������ ���������� �������� ���������� �������:
ftkill -1 ‘cat logs/httpd.pid’
� ���������� ���������� ���� ������� HTTP-�������
���������� ������ HUP (hang-up). �������
������, �������� ����� ������� ���������� ��������� ��������:
� ���������� ��� ����� ������� � ���� ��������;
� ���������� ��� ��������� ����� �������;
� ������ ��������� ����� ������������ �
���������� �� �������������� ������;
� ��������� � ����� ��������� ����������
�����;
� ������ �������������� ��� ��������, �����
��������� � ������� ������� �� ��������� StartServers
� ����� /usr/local/etc/httpd/conf/ httpd.conf.
��� ������, ������ �������� ������. �����������,
������ ������� ������ hang-up, �� �����������
����� ���� ��� ���������� � ��������� ���������. ���� ��� ������ �������,
�� � ����� ErrorLog �������� ���������
����:
[Tue Apr 11 23:00:05 1995] httpd: successful restart
������� ���������� ������ � �� ������
�� ��������� ���������� ����� ���������
� ����������� logs ��������, ����������
� �������� ��������� �������� ������� � ��������� ServerRoot
� ����� httpd.conf
(������ ��� ������� /usr/local/etc/httpd).
� ����� access_log ������������
���� ���� ���������� � ����� ��������. �� ����� ������������ ����������
����������� ��� ���������� ������� � ������ �������. ��� ������� ����������
�������� ������������ ����������� ���������� ������, ������ �������������
� ������ ������ ������ ��� ������. ��� ����� ����� ������������ ���������
���������:
ftcd /usr/local/etc/httpd
ftmv logs/access_log logs/access_log.name_of_inonth.year
ffkill -1 ‘cat logs/httpd.pid’
������ ���������� ���������� �������������
�� Web-����. � ��������� ������ ��������� ��������� ��������� ������� ����������
������:
� Wusage, ����� � ����� �������,
ht1a�://siva.cshl.org/wusage.html.
� Fwgstat, ����� � �������� �����,
http://sunsite.unc.edu/jem/fwgstat. html.
�GetStats, ����� � ����� ����,
http://www.eit.com/software/ getstats/getstats.html.
� wwwstat, ����� � ��� �������,
http://www.iscuci.edu/WebSoft/ wwwstat/.
� gwstat, ��������� ������������
������������� ������ �� ��������� wwwstat,
����� � ������� ����, http://dis.cs.umass.edu/stats/ gwstat.html.
If you want to display the contents of an index.html file when a request is made to your website domain, let’s say it is domain.com, then all you have to do is to upload the index.html file to the correct document root directory on your server.
The document root is the folder where the website files for a domain name are stored.
Document root directories might be named differently depending on your server configuration, however, they’re conventionally named as such:
/www/
/public_html/
They also might live within another directory such as
/home/myusername/public_html/
Your primary domain is generally rooted in the www or public_html folder.
When someone tries to load your website and does not manually type in a file name (such as index.php or index.html), the server attempts to load the “directory index”. The directory index is a listing of files it should load.
For example, if you type in domain.com (i.e: not domain.com/index.php), the server will attempt to load files in the following order. If a file is not found, then it tries to load the next file in the list:
http://domain.com/index.html
http://domain.com/index.htm
http://domain.com/index.php
…and finally, if your server does not find any of these files, it then simply returns a listing of all of the files in the directory. See Image
To prevent this, one should create an index.html file and upload it to the server’s document root directory as we mentioned before.
Try creating your first .html file with a simple text editor by copying the html markup below into a new file and then save it as index.html or download the file here
<html>
<head>
<title>My website's first HTML5 page</title>
</head>
<body>
<h1>Welcome!</h1>
<p>Sorry, but our website is under development.</p>
</body>
</html>
Proceed and upload the index.html file to your server’s document root directory, and then try to access your website domain. It will probably load your index.html and your server will now display the contents of index.html file instead of the “DirectoryIndex listing of files”.
WHEN IT DOES NOT WORK:
If you’ve just placed an index.html or index.php file on your server’s document root folder, for example: /public_html/ and you’re still not getting it to load these files upon a request to your domain, chances are your server is missing a specific configuration for the “DirectoryIndex Directive”.
If that fails to happen, you can use the DirectoryIndex directive in an .htaccess file to specify a custom file or files that the web server looks for when a visitor requests a directory. To enable the DirectoryIndex directive, use a text editor to create/modify the .htaccess file as follows. Replace filename with the file that you want to display whenever a user requests the server’s document root directory:
DirectoryIndex filename
You can also specify multiple filenames, and the web server will search for each file until it finds a match.
Open a text editor and copy the following example directive, then paste it on the new file:
DirectoryIndex index.php index.html index.htm
Save the file as .htaccess
No file extension, just name it as .htaccess placing a dot (.) in front of it to ensure it is a hidden file.
In this directive, when a visitor requests the directory name, the web server looks first for an index.php file. If it does not find an index.php file, it looks for an index.html file, and so on until it finds a match or runs out of files to search.
Now upload the .htaccess file to your server’s document root directory.
It is recommended to restart the server in order to changes to take effect, although you could just try to refresh the directory to see if it works.
If you’ve got full control over your server you might find it easy restart/reload it. However, if you rely on a shared hosting service, maybe you’ll not have enough permission to create an .htaccess file or to restart the server on your own, meaning that you would have to contact your hosting provider support team and request them to do that for you.
I hope it helps you. Good luck.