Обычно я получаю от читателей до сотни вопросов ежедневно. Когда один и тот же вопрос повторяется несколько раз, я посвящаю ему отдельную статью. Так, вопрос о Microsoft IIS, повторяющийся чаще других, звучит следующим образом: как разместить более двух сайтов на одном Web-сервере? Например, у нас имеется сервер IIS, и его требуется использовать для организации двух не связанных между собой сайтов: www.apples.com и www.oranges.com. Как быть?
Казалось бы, ответ прост. В состав IIS входит прекрасно «упакованная» программа Web Site Creation Wizard (в консоли Microsoft Management Con-sole (MMC) Internet Information Ser-vices нужно открыть контекстное меню Web-сервера, затем выбрать New, Web Site). Но дело в том, что мастер не поможет создать на одном сервере несколько сайтов.
Для организации (хостирования) нескольких сайтов на одном Web-сервере необходимо сделать следующее. Во-первых, требуется разместить HTML-файлы различных сайтов в разных каталогах. Во-вторых, нужно указать Web-серверу метод, позволяющий определить, какой именно сайт намерен посетить клиент. И, наконец, следует настроить DNS так, чтобы Web-браузеры посетителей смогли отыскать Web-сервер.
Первый шаг прост. Для каждого Web-сайта необходимо создать на жестком диске сервера свой каталог. Имена каталогов должны отражать их содержимое - например, Apples и Oranges (разместить эти каталоги следует в стороне от каталога Inetpub и не на системном диске).
Уместно упомянуть и о системе безопасности. Любая система, на которой устанавливаются IIS или Personal Web Server, имеет локальную учетную запись IUSR_servername, так что любой посетитель сайта регистрируется под этой учетной записью. Например, если я установил IIS на сервере под названием T21.acme.com, имя этой учетной записи будет IUSR_T21, и все посетители сайта станут регистрироваться на сервере под этим именем. Пользователь, который регистрируется с записью IUSR, входит в группу Guests и, по умолчанию, как член этой группы, обладает правом доступа к различным данным на сервере. Анонимные Web-пользователи, как правило, в домене не регистрируются и с разделяемыми каталогами не работают. Вместо этого они обращаются к ресурсам сервера через программное обеспечение IIS. Соответственно, в составе IIS должен быть инструмент управления с доступом к различным каталогам сайта. Однако IIS имеет множество «дыр», через которые настойчивые пользователи могут без труда добраться до всей сети.
Чтобы избежать проблем, необходимо установить разрешения NTFS, напрямую запрещающие доступ IUSR в те каталоги, куда обычным посетителям сайта обращаться нельзя. «Линия обороны» NTFS - вторая после образуемой программным обеспечением IIS. Причем я настоятельно рекомендую пользоваться самыми последними «заплатками» системы безопасности Web-сервера.
Завершив настройку каталогов, следует сообщить серверу IIS о наличии двух сайтов. Необходимо запустить мастер Web Site Creation Wizard, затем щелкнуть Next - появится панель с запросом о наименовании нового Web-сайта. Это имя отображается только в программе администрирования, поэтому оно может быть любым. Если требуется создать сайт под названием Apple, нужно набрать Apple в поле Description и нажать Next.
Экран 1. Окно назначения IP-адреса и порта TCP. |
На следующей панели (см. Экран 1) серверу IIS сообщается способ, позволяющий установить, содержание (content) какого сайта требуется посетителям. На выбор предлагается три варианта, но я не сомневаюсь, что достаточно и одного. Два из трех методов работают для каждого Web-сервера, из тех, что мне приходилось видеть, начиная с 1994 г. Хотя обычно в этих методах нет необходимости, все же поясню, как они работают.
В списке Enter the IP address to use for this Web site имеются адреса IP, назначенные Web-серверу. Как правило, для Web-серверов используется только один адрес IP, поскольку в системе имеется, вероятно, только одна сетевая карта, и ей присваивается только один IP-адрес. Однако той же самой сетевой карте можно присвоить дополнительные адреса IP - здесь нет никаких ограничений, и об этом сказано в документации Windows 2000. Когда для одной карты используется несколько адресов, она станет отвечать на все запросы, посылаемые на любой из них. Так, назначая для сетевой карты Web-сервера два адреса (например, 1.1.1.1 и 1.1.1.2), можно воспользоваться панелью мастера установки IP Address and Port Settings для ассоциации www.apples.com с 1.1.1.1 и www.oranges.com с 1.1.1.2 (то же самое следует сделать при настройке DNS, о чем будет сказано ниже).
Однако адреса IP - слишком большая роскошь, чтобы каждому Web-сайту выдавать свой. Можно поддерживать работу двух сайтов с одного адреса IP, но тогда нужно настроить Web-сервер на использование более одного порта TCP.
Для тех, кто никогда не слышал о портах TCP, приведу простой пример. Поскольку один и тот же сервер может выступать в разных ипостасях - например, как Web-сервер, или как почтовый сервер, или как сервер-синхронизатор (time server) - просто сказать клиенту, чтобы он обращался на http://www.acme.com, недостаточно: клиенту не хватает информации для взаимодействия с соответствующим программным обеспечением сервера. По умолчанию, Web-сайт использует порт под номером 80, поэтому, когда пользователь запускает, скажем, Microsoft Internet Explorer и указывает некоторое имя DNS, например www.acme.com, Web-клиент «предполагает», что предстоит связаться с Web-сервером http://www.acme.com через 80-й порт. Когда пользователь запускает Microsoft Outlook и намеревается загрузить из Internet свою почту, предполагается, что для этих целей используется не 80-й порт, а порт 110. Когда в роли клиента выступает программа синхронизации времени между клиентом и сервером, используется порт сервера под номером 123. Названные порты приняты по умолчанию, но в большинстве случаев серверное и клиентское программное обеспечение допускает использование нестандартных портов, отличных от принятых по умолчанию.
Поле TCP port this web site should use (см. Экран 1) позволяет поменять порт по умолчанию для Web-сайта. Предположим, требуется запустить www.oranges.com, используя стандартный порт 80, а www.apples.com, используя порт 10000. Если адрес Web-сервера 1.1.1.1, то для этого создаются записи DNS, которые указывают на IP-адрес 1.1.1.1, как для www.apples.com, так и для www.oranges.com. Однако для того, чтобы переписать принятую по умолчанию установку, посетителям www.apples.com нужно использовать URL вида http://www.apples.com:10000.
Необходимость всякий раз при посещении «нестандартного» сайта добавлять суффикс с адресом порта - незавидная перспектива для ежедневной работы с Web, поэтому можно выбрать третий подход: использовать записи заголовков хоста (host header record). Поле Host Header for this site дает возможность Web-клиентам - браузерам - сообщить Web-серверу, какой именно сайт нужен пользователю. При помощи заголовка записи хоста можно разместить на одном Web-сервере с 80-м портом любое количество Web-сайтов. Web-сервер может установить, какой сайт хочет посетить клиент, проанализировав запрос Web-браузера. Вместо того чтобы просто запросить страничку default.htm, браузер просит показать default.htm с сайта www.oranges.com. Дополнительная информация, с помощью которой идентифицируется конкретный сайт, называется записью заголовка хоста.
В таком случае почему бы всем Web-сайтам не воспользоваться записями заголовков хоста? Я думаю, что в настоящее время дело обстоит именно так. Однако Web-серверы, способные распознать заголовки записей хоста, появились только три года назад. Но даже в этом случае Web-браузеры, написанные достаточно давно (скажем, IE 2.0, Netscape 1.0), не в состоянии сформировать такую запись. Современные Web-браузеры «знают», о чем идет речь, однако для надежности следует поддерживать для своих сайтов заголовки хоста.
После завершения работы с этой панелью пользователю будет задан вопрос о каталоге, содержащем контент, и о системе безопасности сайта (можно остановиться на настройках по умолчанию).
Настройка DNS
Теперь Web-сайты практически готовы к работе, остается лишь настроить DNS. Хотя серверы могут отвечать на запросы локальных и удаленных браузеров, эти браузеры не в состоянии посылать запросы тем серверам, которые не удается найти. Настройка DNS как раз и состоит в том, чтобы обеспечить гарантированно успешный поиск сайтов.
Конечно, необходимо в надлежащем порядке зарегистрировать в Internet домены apples.com и oranges.com. Часть процедуры регистрации требует предоставления имен двух DNS-серверов, которые выступят в роли хостов адресной информации о доменах. Поскольку эти DNS-серверы должны быть подключены к Internet по схеме 24*7*365, в большинстве случаев клиенты не станут создавать собственные DNS-серверы, а воспользуются серверами провайдера. Так или иначе, необходимо обеспечить зоны apples.com и oranges.com записью host record, указывающей на IP-адрес Web-сервера.
В заключение нужно добавить, что, если вместо записей информации из host header record решено выделить различным Web-сайтам раздельные адреса IP, необходимо указать для каждой записи на сервере DNS ассоциированный с данным сайтом IP-адрес (в нашем случае 1.1.1.1 для apples.com и 1.1.1.2 для www.oranges.com). Если используются раздельные порты в сочетании с адресом IP или записями host header record, необходимо в записях DNS указать один и тот же адрес IP для всех Web-сайтов.
Марк Минаси - редактор Windows NT Magazine, MCSE и автор книги «Mastering Windows NT Server 4.0» (издательство Sybex). С ним можно связаться по адресу: mark@minasi.com.