Linux - Алексей Стахнов
Шрифт:
Интервал:
Закладка:
• SVDLA CharsetBrokenAccept Agent-Substring accept_charset_string
Игнорировать данный заголовок Accept от данного клиента – использовать другие механизмы для определения типа клиентской кодировки.
• SVDLA CharsetSelectionOrder Rulel …
Устанавливает приоритет способов определения кодировки клиента:
– Portnumber – по номеру порта;
– Hostname – если каноническое имя хоста начинается с имени кодировки или его синонима, то выбирается данная кодировка;
– URiHostname – если имя в заголовке Host: начинается с имени кодировки или его синонима, то выбирается данная кодировка;
– EnvVariabie – ио переменной force_charset, определенной внешними модулями;
– Dirprefix – по началу имени каталога;
– Useragent – ПО IITTP-заголовку User-Agent.
• SVDLA CharsetDefault имя_кодировки
Принимается в качестве кодировки клиента, если все остальные способы не помогли.
• SVDLA CharsetByPort имя_кодировки номер_порта
Определяет кодировку по номеру порта, к которому произошло подключение.
Дополнительная обработка специфических случаев:
• SVDLA AddHandler strip-meta-http.extl …
Удалять тэги "мета http-equiv=.. charset=…" из HTML-файлов перед передачей их клиенту.
• SVDLA CharsetBadAgent шаблон …
Для клиентских программам, подпадающих под шаблон, не будет выдаваться строка charset= в HTTP-заголовке Content-type.
• SVDLA CharsetErrReject On | Off
Если клиент запрашивает неизвестную кодировку в директиве Accept/Accept-charset, выдавать сообщение об ошибке или попытаться определить правильную кодировку.
• SVDLA CharsetDisable On | Off
Выключить модуль для данного сервера/каталога.
• SVDLA CharsetRecodeFilenames On | Off
Перекодировать имена файлов.
• SVDLA CharsetOverrideExpires On | Off
Если включен (on) – заменять заголовки Expires, сгенерированные другими модулями, на свои.
• SVDLA CharsetDisableForcedExpires On | Off
Если выключен (off) – сервер выдает заголовок Expires: 1 Jan 1970 для того, чтобы документ не кэшировался, если его кодировка определилась по User-Agent или Accept-charset.
• SVDLA CharsetRecodeMethodsIn метод1 …
Включить обработку запроса для данного метода: get, post, put, all, none.
• SVDLA CharsetRecodeMethodsOut метод1 …
Включить обработку ответа для данного метода: get, post, put, all, none.
Это далеко не все параметры, используемые при конфигурации сервера Apache. Для более полного описания конфигурационных директив смотрите документацию, идущую в комплекте с сервером Apache. А сейчас перейдем к рассмотрению непосредственно конфигурационных файлов.
Файл access.conf
В access.conf содержатся директивы, описывающие права доступа к каталогам и файлам Web-cepвepa. Обычно создается каталог /www/<имя_сервера>/, потому что при такой организации проще ориентироваться в структуре файлов.
Файл access.conf содержит секции Directory, Location и Files, которые ограничены одноименными директивами. В параметрах этих директив могут использоваться символы"?" и "*", а также регулярные выражения, предваряемые тильдой. В секции Directory помещаются инструкции, относящиеся к определенному каталогу на диске, в секции Location – относящиеся к виртуальному пути, в секции Files – относящиеся к файлу или группе файлов.
<Directory /www/r.com.ua>
# директивы, относящиеся ко всем документам, хранящимся в каталоге /www/r.com.ua и вложенных в него
</Directory><Location /cgi-bin>
# директивы, относящиеся ко всем документам, доступным по адресу http://<имя_сервера>/cgi-bin/ <путь_к_файлу>
</Location><Files /www/r.com.ua/form.htm>
# директивы, относящиеся к файлу form.htm из каталога /www/r/com.ua
</Files>Различие между секциями Directory и Location состоит в том, что первая относится к каталогам на диске, вторая -k виртуальному пути (URL), который браузер запрашивает у Web-cepвepa. И в той, и в другой могут присутствовать директивы order, allow и deny, которые позволяют ограничить доступ к каталогу или URL с различных машин.
При отсутствии специальных требований к безопасности можно указать Options АН в секции <Directory /www>, иначе нужно описать параметры каждого каталога отдельно.
Пример файла access.conf## access.conf – Apache HTTP server configuration file
##
# access.conf: Global access configuration
# Online docs at http://www.apache.org/<Directory />
Options FollowSymLinks
AllowOverride None
</Directory><Directory /www>
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
Файл srm.conf
Файл srm.conf содержит директивы, связанные с общими настройками структуры каталогов сервера. Обычно они не изменяются.
Файл httpd.conf
Конфигурационный файл httpd.conf является основным и содержит настройки, связанные с работой Web-cepвepa, виртуальных серверов, а также всех его программных модулей. Кроме того, именно в нем настраивается перекодирование русских букв при передаче от сервера к клиенту и обратно.
Директива Port, помещенная в самом начале файла, определяет номер порта для HTTP-сервера; по умолчанию это 80. При необходимости можно приписать серверу другой порт или несколько портов.
Директива HostnameLookups с параметром on или off включает или отключает преобразование численных IP-адресов клиентов, получивших данные с сервера, в доменные имена.
Директивы user и Group задают пользователя, который будет администрировать сервер. С точки зрения безопасности нежелательно указывать здесь существующего пользователя, имеющего доступ к каким-либо другим ресурсам или файлам. Лучше создать отдельного пользователя и группу специально для HTTP-сервера.
Директивы serverRoot, ErrorLog, CustomLog определяют корневой каталог HTTP-сервера, путь к журналу регистрации ошибок (error log) и путь к общему журналу обращений к серверу (access_log).
Настройка виртуальных серверов в файле httpd.conf
Обычно на одном физическом Web-cepвepe размещаются несколько так называемых «виртуальных» Web-серверов. Обычно это делается по нескольким причинам – экономия денег (для чего покупать отдельные серверы, когда можно на существующем сервере запустить сотню виртуальных серверов), экономия IP-адресов (и в конечном итоге – денег), проще с администрированием.
Виртуальные серверы могут иметь один и тот же IP-адрес и разные доменные имена, а могут иметь и разные IP-адреса. Для описания адресов и доменных имен виртуальных серверов служат следующие директивы:
ServerName, ServerAlias, NameVirtualHost и VirtualHost. Они необходимы только если вам нужно установить более одного виртуального сервера.
Директива ServerName, находящаяся вне секций VirtualHost, определяет имя основного сервера, корневой каталог которого задан директивой DocumentRoot в файле srm.conf. Виртуальные серверы наследуют настройки основного; при необходимости специальной настройки соответствующие директивы помещаются в секции VirtualHost, относящейся к данному серверу.
Ниже приведен фрагмент конфигурационного файла для виртуальных серверов с различными IP-адресами:...ServerName www.lug.net
<VirtualHost 192.168.0.2>
DocumentRoot /www/lug.net
ServerName www.lug.net
ErrorLog /var/log/error_log.lug.net
CustomLog /var/log/access_log.lug.net combined...</VirtualHost>
<VirtualHost 192.168.11.6>
DocumentRoot /www/r.com
Se rverName www.r.com
ErrorLog /var/log/error_log.r.com
CustomLog /var/log/access_log.r.com combined...</VirtualHost>
Ниже приведен фрагмент конфигурационного файла для виртуальных серверов с одинаковыми IP-адресами:
....
ServerName www.lug.net
NameVirtualHost 192.168.0.2<VirtualHost 192.168.0.2>
DocumentRoot /www/lug.net
ServerName www.lug.net
ErrorLog /var/log/error_log.lug.net
CustomLog /var/log/access_log.lug.net combined...</VirtualHost>
<VirtualHost 190.168. 0.2>
DocumentRoot /www/nug.net
ServerName www.nug.net
ServerAlias *.nug.net
ErrorLog /var/log/error_log.nug.net
CustomLog /var/log/access_log.nug.net combined...</VirtualHost>
Ссылки
• http://bog.pp.ru/work/apache.html – Apache: HTTP-сервер. Установка, настройка и русификация.
• http://www.cs.ilmo.ru/education/dociimentation/rapacheman/index.shtml – Артем Подстрешный. Работа с Web-сервером Russian Apache.
• http://www.apache.org – официальный сервер Apache.
• http://apache.lexa.ru – сервер группы разработчиков русского модуля Apache.
• Соответствующие HOWTO (см. гл. 13):
– Apache-Overview-HOWTO – Обзор Web-cepвepa Apache;
– Building a Secure RedHat Apache Server HOWTO – настройка безопасного Apache;
– Apache+DSO+mod_ssl+mod_perl+php+mod_auth_nds+mod_auth_mysql+mod_fastcgi mini-HOWTO – инсталляция Apache Web-cepвepa с поддержкой модулей mod_perl, mod_ssl и php;
– Linux Apache SSL PHP/FI frontpage mini-HOWTO – настройка Web-сервера, поддерживающего динамически изменяемое содержимое.
Глава 20 FTP
Эта глава посвящена протоколу FTP, настройке сервера FTP, проблемам конфигурации и безопасности сервера.
Протокол FTP
Протокол FTP (File Transfer Protocol, протокол передачи файлов) предназначен для передачи файлов в сети Интернет. Этот протокол был разработан на заре эры Интернета и по сию пору остается востребованным и актуальным. Конечно, он несколько устарел, частично функции передачи файлов взял на себя Web-протокол HTTP, но, несмотря на это, протокол FTP, похоже, будет использоваться еще долгое время.
Передача файлов заключается в копировании целого файла с одного компьютера на другой. Для использования FTP-сервиса необходимо иметь учетную запись на сервере для авторизованного доступа, или воспользоваться анонимным доступом к FTP (anonymous FTP).
Протокол FTP, в отличие от большинства других протоколов, для пересылки файла использует два TCP-соединения. Одно соединение собственно для пересылки файла, а второе – для управления процессом передачи (управляющее соединение). Порт 20 предназначен для пересылки данных, а порт 21 для управляющего соединения. FTP-протокол может использовать как TCP-соединение, так и UDP-соединение.