Так получилось, что файлы apache2 conf содержат env vars с паролями и другими ценными данными. После запуска apache2 я удалил свои файлы conf. Я знаю, что для перезагрузки мне придется создать эти файлы снова.
Как долго apache2 будет продолжать свою работу как и ожидалось (показывая мои сайты)? Читает ли apache2 файлы conf после запуска?
Я спрашиваю, потому что так получилось, что я не перезапускал серверы, но они показывают страницу Apache Ubuntu по умолчанию.
ps -aux | grep apache
www-data 27019 0.0 0.0 424372 12780 ? S 15:52 0:00 /usr/sbin/apache2 -k start
www-data 27963 0.0 0.0 424372 12800 ? S 16:46 0:00 /usr/sbin/apache2 -k start
www-data 27964 0.0 0.0 423968 12500 ? S 16:46 0:00 /usr/sbin/apache2 -k start
www-data 28159 0.0 0.0 423968 12424 ? S 16:59 0:00 /usr/sbin/apache2 -k start
www-data 28607 0.0 0.0 423968 11044 ? S 17:19 0:00 /usr/sbin/apache2 -k start
ubuntu 28688 0.0 0.0 12948 956 pts/0 R+ 17:23 0:00 grep --color=auto apache
root 28766 0.0 0.2 423888 34928 ? Ss 2018 06:14 /usr/sbin/apache2 -k start
UPD: я знаю, что это плохой способ удаления файлов конфигурации.
решение1
Как сказал @djsmiley2k, Apache продолжит работу без файлов конфигурации, если файлы конфигурации существовали при его запуске. И нет, это не хорошее решение, как он сказал, и вы это знаете.
Тем не менее, в ответ на вопрос, будет ли apache2работаили нет... Я бы сказал "нет".
Большинство систем автоматически перезапускают Apache и/или перезагружают конфигурации Apache по разным причинам. Например, Apache обычно перезапускается при ротации его файлов журнала. Многие из этих автоматизированных задач необходимы для правильной работы веб-сервера на базе Apache. Вам также придется автоматизировать повторное создание файлов конфигурации... то есть вам придется хранить пароли где-то в другом месте, и в этот момент вы теряете смысл удаления файлов конфигурации.
Кроме того, есть незапланированные перезапуски... например, когда apache2 падает. Apache, как бы стабилен он ни был, не является пуленепробиваемым. Стандартная операционная система (SOP) заключается в том, чтобы иметь некий метод для наблюдения за процессом Apache и автоматически перезапускать его в случае зависания или падения. Многие современные системы используют для этого systemd. Опять же, вы можете добавить автоматическую реконструкцию файлов конфигурации в процесс перезапуска... но это все равно сводит на нет смысл удаления файлов конфигурации изначально.
Реальное решение здесь — защитить ваши конфиденциальные данные.Переменные среды должны быть установлены любым инструментом, который вы используете для управления процессом Apache. Systemd (например)обеспечивает инструментыдля этого. Пароли, используемые длялокальная аутентификациядолжны быть зашифрованы и сохранены в файлах, доступных для чтения/записи только пользователю, от имени которого запущен Apache (т. е. root
), и особенно тому, от имени которого он читает файлы (т. е www-data
. ).
Если у вас есть пароли, используемые для удаленной аутентификации (т. е. аутентификации с вашего веб-сервера на другой сервер или службу... например, базу данных), то вам следует рассмотреть возможность замены их на предварительно общие открытые/закрытые ключи, такие как используемые для аутентификации ssh... не говоря уже о шифровании между удаленными серверами (серьезно, туннели ssh, хорошая штука)... опять же, хранящиеся в файлах, доступных только привилегированному пользователю, который запускает Apache. И, честно говоря, сам Apache не должен обрабатывать задачу аутентификации на другой службе...
решение2
Тыможетудалите файлы после запуска Apache, и он продолжит работу до тех пор, пока ему снова не понадобится прочитать файлы (например, если вы перезапустили демон).
Кажется, этоX->Yпроблема, и вы на самом деле не указали ее, а просто задали вопрос о том, что вы считаете решением. Однако это не рекомендуемое решение.
решение3
Хотя я согласен с тем, что не стоит хранить критически важные данные непосредственно в файлах apache conf, здесь есть другая идея. Определенно, не пароли любого рода.
Вы можете создать свой собственный файл(ы) *.conf внутри папки conf.d. Apache все равно загрузит их.
Затем перенесите все ценные данные в новый файл .conf. Теперь вам нужно удалить и переустановить только один файл.
Таким образом, apache все еще будет иметь некоторые данные конфигурации, доступные, и не начнется как пустая установка apache. Очевидно, что папка documentRoot является наиболее важной.