Виртуальный хост Apache 2.2 по умолчанию для IP-адреса

perl -lne '
   eof and !$a && print "$ARGV: ", 0+$a;          # no DONEs => ans=0
   next unless /DONE/ && !$a ... /DONE/;          # skip non-DONE ranges
   /DONE/ and !$a++ && next;                      # begin DONE range
   !/DONE/ and !eof and $a++,next;                # middle of DONE range
   !/DONE/ and eof and $a=2;                      # lone DONE => ans=0
   print "$ARGV: ", ($a-2, $a=0, close ARGV)[0];  # end of DONE range
                                                  # at the end we do 4 things: 1) subtract 2 from sum, 2) print filename+sum, 3) reset sum, and 4) skip the current file and jump to the next file in queue.
' ./*.txt

С помощью sed мы можем сделать это для отдельных файлов:

for f in ./*.txt; do
   printf '%s: %d\n' "$f" "$(sed -e '/DONE/,/DONE/!d; //d' "$f" | wc -l)"
done

Разница будет в сценарии, когда у нас не будет закрытия СДЕЛАНО.

1
26.06.2017, 12:01
1 ответ

Как вы намекнули, "первый виртуальный хост" будет открыт по умолчанию при посещении по IP-адресу.

Сложность заключается в том, чтобы понять, как Apache решает, какой из них является «первым»; на самом деле он сортирует активные/включенные виртуальные хосты по имени файла, а нижнее/первое имя файла в порядке возрастания, которое соответствует виртуальному хосту, использующему этот IP-адрес, выигрывает и выбирается как «первый».

Таким образом, независимо от имени виртуального хоста, если вы назовете файл как 0.confили 0actualvhostname.confдля первого IP-адреса и, например, 1. confдля второго IP-адреса, эти файлы vhost будут «выигрывать» и использоваться в качестве vhosts по умолчанию, которые будут открываться при просмотре вашего сервера по IP-адресу.

По этой же причине в Debian, например, файл конфигурации виртуального хоста Apache по умолчанию называется 000-default.conf.

Вам также необходимо перезапустить Apache после изменения имени файла vhost; например:

sudo apache2ctl -k graceful
0
28.01.2020, 00:53

Теги

Похожие вопросы