Виртуальные хосты Apache
Я пытаюсь создать ссылки на своем веб-сайте, например support.mydomain.com или management.mydomain.com, а не mydomain.com/support и т. Д. Я слышал, что вы можете сделать это с виртуальными хостами Apache, но я не уверен, как бы я настроил это до.
Я на Apache 2.4 и Ubuntu 16.04
1 ответ
Дистрибутив Apache2 поставляется с очень простой в использовании модульной конфигурацией.
Скопируйте свой 000-default.conf
в /etc/apache2/sites-available
в файл с таким именем вы будете называть свой виртуальный сайт. Используйте файл configuraton 000-default.conf
как шаблон.
В этом случае вы указали mydomain.com
, Вы также указали management.mydomain.com
, Вы можете использовать оба для доступа к одному и тому же сайту. В этих шагах я буду использовать mydomain.com
,
Вы можете использовать любое имя для файла конфигурации. Использование имени, которое включает имя вашего виртуального хоста, облегчит управление вашими сайтами, если вы создадите несколько из них.
Запустите эти шаги. Я пронумеровал их, чтобы вам было легче указать, на каком этапе, если таковой имеется, вы застряли или не понимаете. $
там, чтобы представить подсказку терминала, где вы вводите свою команду. Команда - это текст, который вы видите после $
незамедлительный.
1. $ mkdir -p / home / web / mysite / www 2. $ mkdir -p / home / web / mysite / log 3. $ cd / etc / apache2 / sites-available 4. $ sudo cp 000-default.conf mydomain.conf 5. $ gksudo gedit mydomain.conf
Меняться от:
# Директива ServerName устанавливает схему запроса, имя хоста и порт, который # сервер использует для идентификации себя. Это используется при создании # перенаправления URL. В контексте виртуальных хостов имя_сервера # указывает, какое имя хоста должно появиться в заголовке запроса Host: # соответствовать этому виртуальному хосту. Для виртуального хоста по умолчанию (этот файл) это Значение # не является решающим, так как оно используется в качестве хоста последней инстанции. # Однако вы должны явно установить его для любого другого виртуального хоста. #ServerName www.example.com ServerAdmin вебмастер @localhost DocumentRoot /var/www/html # Доступные уровни журналов: trace8, ..., trace1, отладка, информация, уведомление, предупреждение, # ошибка, крит, тревога, эрг. # Также возможно настроить уровень логирования для конкретного # модулей, например #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log вместе # Для большинства конфигурационных файлов из conf-available/, которые # включено или отключено на глобальном уровне, возможно # включить строку только для одного конкретного виртуального хоста. Например, # следующая строка включает настройку CGI только для этого хоста # после того, как он был глобально отключен с помощью "a2disconf". #Include conf-available/serve-cgi-bin.conf VirtualHost># vim: синтаксис =apache ts=4 sw=4 sts=4 sr noet
Изменить на:
# Директива ServerName устанавливает схему запроса, имя хоста и порт, который # сервер использует для идентификации себя. Это используется при создании # перенаправления URL. В контексте виртуальных хостов ServerName # указывает, какое имя хоста должно отображаться в заголовке Host: запроса, чтобы # соответствовать этому виртуальному хосту. Для виртуального хоста по умолчанию (этот файл) это значение # не является решающим, поскольку оно используется в качестве хоста последней инстанции независимо. # Однако вы должны явно установить его для любого другого виртуального хоста. #ServerName www.example.com ServerName mydomain.com ServerAlias www.mydomain.com ServerAlias management.mydomain.com ServerAdmin webmaster@localhost DocumentRoot /home/web/www <Каталог / home / web / ubunzeus / www> Параметры +FollowSymLinks +ExecCGI + Включает # AllowOverride All # Новая директива, необходимая в Apache 2.4.3: Требовать все предоставленные Directory> # Доступные уровни журналов: trace8, ..., trace1, отладка, информация, уведомление, предупреждение, # ошибка, критическое замечание, предупреждение, emerg, # Также можно настроить уровень журнала для определенных # модулей, например #SogLevel info ssl: warn ErrorLog /home/web/mydomain/log/error.log CustomLog /home/web/mydomain/log/access.log в сочетании # Для В большинстве файлов конфигурации из conf-available/, которые # включены или отключены на глобальном уровне, можно включить строку только для одного конкретного виртуального хоста. Например, следующая строка # включает конфигурацию CGI для этого хоста только после того, как он был глобально отключен с помощью "a2disconf". # Включите conf-available / serve-cgi-bin.conf VirtualHost># vim: синтаксис =apache ts=4 sw=4 sts=4 sr noet
Продолжите следующие команды, чтобы активировать изменения:
6. $ sudo a2ensite mydomain.conf 7. Перезапуск службы $ sudo apache2
Благодаря этим шагам вы можете получить доступ к своему новому виртуальному хосту, введя имя, которое вы дали ему в веб-браузере.
Поместите ваш веб-контент (ваши HTML- файлы) в каталог, который вы создали для своего виртуального хоста. В этом примере это: /home/web/www
, Ваш веб-каталог может быть размещен в любом месте вашей системы. Вам просто нужно настроить конфигурационный файл вашего виртуального хоста с информацией.
Каждый раз, когда вы вносите изменения в файлы конфигурации Apache2, обязательно перезагрузите его, чтобы изменения вступили в силу.
$ sudo service apache2 restart