Насколько сильно использование htaccess файлов замедляет работу сайта (особенно с твердотельными дисками)?

Документы Apache говорят (http://httpd.apache.org/docs/2.4/howto/htaccess.html),

"Вам следует избегать использования файлов .htaccess полностью, если у вас есть доступ в файл конфигурации httpd main server. Использование файлов .htaccess замедляется ваш HTTP-сервер Apache. Любая директива, которую вы можете включить в .htaccess лучше установить в блоке Directory, так как он будет иметь такой же эффект с лучшей производительностью".

Но это не дает мне представления о масштабах воздействия.

У меня есть архитектура, предназначенная для общего хостинга, где единственным выбором было использование файлов htaccess.

Я перехожу к Digital Ocean, где могу делать то, что мне нравится.

Мне нужно судить о том, следует ли хранить файлы htaccess или перемещать вещи оттуда в централизованные файлы конфигурации и отключать их.

Может существовать 100 сайтов небольших сайтов с низким уровнем использования (локальные предприятия).

Если производительность достигает около 50 мс при обслуживании страницы или имеет некоторые другие незначительные удары, такие как уменьшение количества одновременных доступов, которые могут поддерживаться примерно на 5%, тогда мне все равно.

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

Но я ничего не нашел, что дает мне представление о том, какой порядок величины я могу ожидать.

Может кто-нибудь просветить меня?

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

Ответ 1

Видимо 12ms для файла с расширением 1500 строк .htaccess.

Ответ 2

Учебник по цифровому океану в https://www.digitalocean.com/community/tutorials/how-to-use-the-htaccess-file говорит,

"Страница .htaccess может несколько замедлить работу вашего сервера, для большинства серверов это, вероятно, будет незаметным изменением".

Ответ 3

Я цитирую из учебника по .htaccess Джозефа Пекораро на code.tutsplus.com здесь:

Кроме того, когда [.htaccess] включен, сервер будет использовать потенциал производительность хит. Причина в том, что каждый запрос на сервер, если .htaccess включена, когда Apache отправляет запрос файл для клиента, он должен искать файл .htaccess в каждом одиночный каталог, ведущий туда, где хранится файл.

Эти потенциальные обращения к файлам (потенциальные, поскольку файлы могут не существуют), и их исполнение (если они действительно существуют) потребует времени. Еще раз, мой опыт в том, что он незаметен, и он не перевешивает преимущества и гибкость в том, что файлы .htaccess предоставляют разработчикам.

Для вашего сценария моя личная рекомендация будет выглядеть как "Не исправить то, что не сломано", потому что время и усилия равны деньгам, и я полностью согласен с вашим рассуждения в этом комментарии.

Ответ 4

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

Ответ 5

Трудно давать числа, поскольку влияние зависит от скорости вашего оборудования и от того, сколько памяти вы готовы посвятить кешированию файлов, но позвольте мне привести пример, который должен прояснить влияние - скажем, у вас есть сайт wordpress и изображение, которое находится на /wp -content/uploads/2015/10/my.png, должно быть подано.

При обслуживании этого файла может потребоваться один доступ к диску, просто чтобы проверить все возможные .htaccess, вам понадобятся дополнительные 5 дисков. Если файл большой, накладные расходы могут быть не заметны, но для небольшого файла, который может даже вписаться в один блок на диске, вы тратите 80% времени на то, что не требуется вообще.

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

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