Содержание статьи
Работа сервера на нескольких портах
Как правило, при настройке SSL/HTTPS веб‑сервер слушает порт 80 или 443. Но в некоторых сложных конфигурациях нужно, чтобы он слушал несколько портов. Далее будет показано, как разместить на одном сервере три независимых приложения, каждое из которых будет работать на собственном порту — 80, 3128 и 8080. На практике такая конфигурация — не редкость в dev-средах, где есть потребность в размещении нескольких независимых приложений на одном сервере (не арендовать же для этого сразу несколько серверов?).
Первым делом нужно отредактировать файл /
и задать порты, которые будет слушать сервер (по одному порту в строчке):
Listen 80Listen 3128Listen 8080
Далее нужно создать конфигурацию для каждого из приложения (для каждого порта). Ты можешь использовать разные файлы конфигурации, а можешь поместить все настойки в один файл — как больше нравится. Вот листинг, где все настройки хранятся в одном большом файле (чтобы не делать три разных листинга).
Файл /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
DocumentRoot /var/www/landing <Directory /var/www/landing>
Options -Indexes AllowOverride All # Apache 2.4.x <IfModule mod_authz_core.c>
Require all granted </IfModule>
</Directory>
CustomLog /var/log/apache2/landing.access.log "Combined" ErrorLog /var/log/apache2/landing.error.log</VirtualHost>
<VirtualHost *:3128>
DocumentRoot /var/www/sonerezh <Directory /var/www/sonerezh>
Options -Indexes AllowOverride All # Apache 2.4.x <IfModule mod_authz_core.c>
Require all granted </IfModule>
</Directory>
CustomLog /var/log/apache2/demo.sonerezh.bzh-access.log "Combined" ErrorLog /var/log/apache2/demo.sonerezh.bzh-error.log</VirtualHost>
<VirtualHost *:8080>
DocumentRoot /var/www/sonerezh-ru <Directory /var/www/sonerezh-ru>
Options -Indexes AllowOverride All # Apache 2.4.x <IfModule mod_authz_core.c>
Require all granted </IfModule>
</Directory>
CustomLog /var/log/apache2/demo.sonerezh.ru-access.log "Combined" ErrorLog /var/log/apache2/demo.sonerezh.ru-error.log</VirtualHost>
Принцип следующий: мы указываем номер порта в директиве VirtualHost
, а затем готовим разную конфигурацию для разных узлов. После настройки нужно не забыть рестартануть апач (sudo
), а затем обращаться к каждому приложению можно так:
http://IP:номер порта
Динамические поддомены
Часто для одного домена создаются поддомены, например, sales.example.com, support.example.com и т.д. Поддомены настраиваются c использованием директивы VirtualHost
. Но если поддоменов много, то тебе быстро надоест создавать отдельный конфигурационный файл для каждого из них. Гораздо проще использовать следующую конфигурацию:
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»