Подтвердить что ты не робот

Любые негативные последствия при использовании Mod-Rewrite?

Я знаю, что есть много позитивных вещей, которые выполняет mod-rewrite. Но есть ли какой-то негатив? Очевидно, если у вас плохо написаны правила, у вас будут проблемы. Но что, если у вас есть сайт с большим объемом и постоянное использование mod-rewrite, это будет иметь существенное влияние на производительность? Я быстро просмотрел некоторые тесты в Google и не нашел многого.

4b9b3361

Ответ 1

Я использовал mod_rewrite на сайтах, которые получают миллионы/хиты/месяц без каких-либо существенных проблем с производительностью. Вы должны знать, какие перезаписи сначала применяются в зависимости от ваших правил.

Использование mod_rewrite скорее всего быстрее, чем анализ URL с вашим текущим языком.

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

Ответ 2

Чтобы повторить то, что сказал Райан выше, правила в .htaccess могут повредить время загрузки на занятом сайте по сравнению с правилами в вашем файле конфигурации. Сначала мы попробовали это (~ 60 миллионов страниц в месяц), но не продлились очень долго, пока наши серверы не начали курить:)

Очевидным недостатком правил в вашей конфигурации является перезагрузка конфигурации при каждом изменении правил.

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

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

Ответ 3

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

Будьте осторожны, хотя я был в проекте, который много использовал флаг "skip", и это делало обслуживание болезненным, поскольку оно зависит от порядка, в котором вещи записаны в файле.