IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Linux | Open source  >

Подготовка к экзамену LPI: Web-сервисы

Средний уровень администрирования (LPIC-2) тема 208

developerWorks
На предыдущую страницуСтраница 4 из 8 На предыдущую страницу

Опции документа

Выскажите мнение об этом учебном пособии

Помогите нам улучшить содержание


Поддержка работы web-сервера

Виртуальные хосты, multi-homing и отдельные настройки различных каталогов

Индивидуальные каталоги, обслуживаемые сервером Apache, могут иметь свои собственные настройки конфигурации. Однако в главном конфигурационном файле может указать ограничения на то, какие опции могут быть настроены локально. Если настойка каждого каталога в отдельности разрешается, то используется директива AccessFileName, и обычно прописывается локальное конфигурационное имя файла .htaccess. Ограничения на возможности локальной настройки каталога определяются в директиве <Directory>. Например:


Listing 7. Пример директивы directory
                    
#Let's have some Icons, shall we?
Alias /icons/ "/usr/share/apache2/icons/"
<Directory "/usr/share/apache2/icons">
      Options Indexes MultiViews
      AllowOverride None
      Order allow,deny
      Allow from all
</Directory>

Часто одновременно с индивидуально настраиваемыми каталогами Apache может обслуживать виртуальные хосты. Многочисленные доменные имена могут быть обслужены одним и тем же процессом Apache, каждый имея доступ к определенному каталогу. Виртуальные хосты можно определить директивой <VirtualHost>; разместите файлы конфигурации во внутреннем каталоге, например, /etc/apache2/sites-enabled/, или в главном конфигурационном файле. Например, можно их задать вот так:


Listing 8. Конфигурация виртуальных хостов
                    
      <VirtualHost "foo.example.com">
          ServerAdmin webmaster@foo.example.com
          DocumentRoot /var/www/foo
          ServerName foo.example.com
          <Directory /var/www/foo>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
          </Directory>
          ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
          <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
          </Directory>
          CustomLog /var/log/apache2/foo_access.log combined
      </VirtualHost>
      <VirtualHost "bar.example.org">
          DocumentRoot /var/www/bar
          ServerName bar.example.org
      </VirtualHost>
      <VirtualHost *>
          DocumentRoot /var/www
      </VirtualHost>

Последняя опция * принимает все HTTP запросы, которые направлены не на один из явно определенных имен (как те, адресуемые IP-адресом или адресуемые неуказанным символьным доменом, что также приводят к машине-серверу). Чтобы виртуальные хосты работали, DNS должна определять каждый псевдоним с записью CNAME.

Возможность multi-homing по названию похожа на виртуальный хостинг, однако идея здесь совсем другая. Используя multi-homing, можно указывать IP-адреса, с которыми машина соединяется для того, чтобы разрешить web-запросы. Например, можно дать HTTP-доступ только локальной сети LAN, но не для остального мира. Если указывается адрес, от которого ждут сигнала, также можно указать неумолчательный порт. Значение для BindAddress, выставленное по умолчанию -- это *, что означает принимать запросы на все IP-адреса, с котрыми связан этот сервер. Пример смешанного использования выглядит примерно вот так:


Listing 9. Конфигурация multi-homing
                    
BindAddress 192.168.2.2
Listen 192.168.2.2:8000
Listen 64.41.64.172:8080

В этом случае, все клиентские запросы из локальной LAN (использующие адрес 192.168.2.2) будут приняты на порт 80 и специальный порт 8000. Этот дистрибутив Apache также будет отслеживать клиентские HTTP запросы из WAN адреса, но только на потр 8080.



В начало


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

Командами Order, Allow from, и Deny from в директиве <Directory> можно управлять доступом к отдельным каталогам сервера. Запрещенные или разрешенные адреса можно задавать полными или частичными именами хостов или IP-адресами. Order позволяет задавать приоритет между списком разрешения и списком запрета.

Часто требуется более тонкий контроль, нежели тот, что задается простым разрешением определенным хостам обращаться к web-серверу. Для подключения требований входа пользователя, используется семейство команд Auth*, опять-таки, внутри директивы <Directory>. Например, для установке базовой аутентификации можно использовать директиву, как показано в Listing 10.


Listing 10. Конфигурация базовой аутентификации
                    
      <Directory "/var/www/baz">
          AuthName "Baz"
          AuthType Basic
          AuthUserFile /etc/apache2/http.passwords
          AuthGroupFile /etc/apache2/http.groups
          Require john jill sally bob
      </Directory>

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

Поддержка SSL-шифрования web-трафика обеспечивается модулем mod_ssl. Если используется SSL, данные, передаваемые между сервером и клиентом, шифруются с динамически изменяемым паролем, что является стойким по отношению к перехвату. Все основные браузеры поддерживают SSL. За большей информацией по настройке Apache 2.x с mod_ssl, обратитесть к описанию на web-сайте Apache (ссылка указана в ресурсах).



В начало



На предыдущую страницуСтраница 4 из 8 На предыдущую страницу
    IBM в России Конфиденциальность Контакты