Не существует легко читаемого способа использования DirectoryMatch
для сопоставления всех /var/www/aaa
, /var/www/bbb
и /var/www
, но не /var/www/ccc
. Это связано с тем, что /var/www
включает в себя все остальные три каталога.
Что может быть проще, так это использовать мод _макрос для определения общих разделов конфигурации, а затем применить их с помощью Directory
, как в исходном примере.
a2enmod macro # Enable the mod_macro module
systemctl restart apache2 # YMMV but this is the systemd way
Затем вы можете определить свой макрос. Вот один из них, который я использую
# Logging
#
ServerSignature On
LogLevel warn
ErrorLog "|/usr/bin/cronolog /home/www/$vHost/logs/%Y/%m/%d/public-error.log"
CustomLog "|/usr/bin/cronolog /home/www/$vHost/logs/%Y/%m/%d/public-access.log" combined
и я включаю его в такое определение виртуального хоста
Use CronoLogger www.contoso.com
В вашем случае с примером макроса StandardStuff param1 param2
вы можете использовать его следующим образом
Use StandardStuff /var/www /
Use StandardStuff /var/www /aaa
Use StandardStuff /var/www /bbb
# Do non-standard stuff here
#
Проблема с производительностью заключалась в том, что я думал, что добавление в белый список системных вызовов en nspawn с --system-call-filter
улучшит производительность, но, как мне объяснили в списке systemd mail , я должен использовать export SYSTEMD_SECCOMP=0
, потому что nspawn будет по-прежнему обрабатывать системные вызовы, когда я внесу их в белый список.
SYSTEMD_SECCOMP
был добавлен в systemd v247 (debian buster имеет v241, но репозиторий backport имеет v247 ).
чтобы сделать nspawn таким же быстрым, как хост baremetal:
export SYSTEMD_SECCOMP=0
systemd-nspawn --capability=all -D./bbusterboot --boot
это эквивалентно --privileged
в docker/podman
, и нет необходимости использовать --system-call-filter
, если мы используем SYSTEMD_SECCOMP
.
Конечно, это плохо для безопасности, поэтому делайте это в безопасной среде, запуская только доверенный код.
и если вам нужна максимальная производительность, которая повысит производительность baremetal, nspawn, docker, podman или чего-то еще, что вы используете, отключите все меры по смягчению spectre/meltdown, как я сделал в вопросе выше (, но это не так. также хорошо для безопасности, если вы запускаете ненадежный код, такой как браузеры с рекламой, например ).
прочтите это для более подробной информации:https://github.com/systemd/systemd/issues/18370