У меня есть 2 сайта на моем локальном хосте. Один на localhost: 8197 и один на fc.localhost: 8197 Конечно, чтобы это работало, я отредактировал свой файл / etc / hosts, включив в него
fc.localhost 127.0.0.1
Итак, это мои конфигурации для каждого сайта соответственно:
000-default.conf (сайт находится на локальном хосте):
<VirtualHost *:8197>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/>
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
fc.conf (сайт расположен по адресу fc.localhost):
<VirtualHost *:8197>
ServerAdmin webmaster@localhost
DocumentRoot /home/alex/Documents/fc/Website/fc/html
ServerName fc.localhost
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /home/alex/Documents/fc/Website/fc/html>
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
Предположим, что мой локальный IP-адрес - 10.8.210.51, а какой-то компьютер в моей локальной сети помещает 10.8.210.51:8197 в адресную строку своего браузера, тогда apache на моей стороне будет обслуживать первый сайт (localhost), а не второй ( fc.localhost). То же самое произойдет, если я введу 127.0.0.1:8197 в адресную строку (на стороне сервера).
Итак, из очевидного интереса мой вопрос: как Apache решает, какой сайт обслуживать, и как я могу изменить это поведение?
Краткий ответ для вашего конкретного случая: apache будет обслуживать ПЕРВЫЙ перекрывающийся виртуальный хост. Поскольку 000-default стоит перед fc.localhost в алфавите, загружается и обслуживается первый виртуальный хост.
Чтобы ответить на то, что я предполагаю, это следующий вопрос: вы можете разместить много сайтов на одном IP: PORT, используя namedVirtualHosts
Эта технология основана на Заголовок хоста в спецификации HTTP.
И из-за сложностей с SSL https виртуальные хосты возможны через Индикация имени сервера
Это называется «виртуальный хостинг на основе имени», описанный Вот: