Никогда не используйте файлы .htaccess в продакшене

Новый студент, который изучает Apache вместе со мной, сказал мне сегодня вечером, что одна из вещей, которую он хотел бы узнать, это когда использовать .htaccess файлы для своего веб-приложения. Ответ никогда, по крайней мере, в продакшене, потому что их не следует включать.

Это взгляд на то, почему, и это не займет много времени.

.хт-что?

Сначала немного предыстории. Не стесняйтесь пропустить это.

.htaccess файл. Это способ настройки параметров Apache путем помещения файла в обслуживаемый каталог. Любые директивы конфигурации в файле повлияют на каталог и все, что находится под ним.

Пока они включены и используются определенные директивы конфигурации, все в порядке. Не все директивы можно использовать, но они хорошо работают для своих целей.

Подробнее см. Аллововеррайд а также Переопределить индекс класса для .htaccess.

Так в чем проблема?

Давайте посмотрим, что происходит с .htaccess файл, и тогда мы увидим проблему.

Когда у вас есть доступное средство, подобное этому, где вы можете поместить директиву конфигурации в файл на любом уровне структуры каталогов, и она сразу же заработает для этого каталога и каждого уровня ниже, может произойти только одно…

Когда файлы .htaccess включены, Apache проверит наличие .htaccess файл, для каждого каталога в пути, для каждого запроса, который он получает. Если таковые существуют, они будут прочитаны с диска и скомпилированы для каждого запроса. Для… каждого… запроса.

Это означает, что даже если вы их не используете, но они включены, Apache будет опрашивать файловую систему для каждого каталога в пути для каждого обслуживаемого запроса.

Если они есть, то еще хуже. Они будут считываться с диска и компилироваться для каждого запроса. Они должны быть, чтобы поддерживать эту функцию.

Опрос файловой системы и чтение файлов — это не то, чем мы хотим заниматься без необходимости. Это требует времени. Времени не много, но достаточно.

Достаточно получить файл, который вы обслуживаете, а с включенным SendFile даже не нужно будет читать статические файлы. Он может идти прямо с диска на провод. Чтение файлов не требуется, если у вас не включен .htaccess!

Вы должны использовать кеширующий обратный прокси, но это уже другая история.

.htaccess это удобство. Он предназначен для поддержки пользователей, которые могут управлять своей собственной конфигурацией веб-сервера и держаться подальше от системного администратора. Это не подходит для производственной системы.

Это немного похоже на фаст-фуд, быстро и легко, но не является частью здорового питания.

Итак, что мне делать?

Переместите все директивы конфигурации в ваш основной файл(ы) конфигурации, чтобы вся конфигурация сервера компилировалась при запуске сервера и в памяти для обработки каждого запроса.

Установлен AllowOverride None для виртуального хоста. Даже лучше по умолчанию для сервера. Рядом с вершиной httpd.conf вы найдете существующее значение по умолчанию, в зависимости от вашего дистрибутива.


Программа наставничества по основам веб-приложений

Я создаю программу наставничества, чтобы изучить основы разработки веб-приложений. Вы можете работать со мной в качестве наставника, или другие наставники могут использовать его и помогать в улучшении. Все материалы бесплатны и находятся на GitHub. Это даже есть сайт! Я предлагаю бесплатную сессию, чтобы обсудить, как это может работать для вас.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *