Domanda

So che ci sono molte cose positive che la riscrittura del mod realizza.Ma ci sono aspetti negativi?Ovviamente se hai regole scritte male avrai problemi.Ma cosa succede se hai un sito ad alto volume e utilizzi costantemente la riscrittura mod, avrà un impatto significativo sulle prestazioni?Ho fatto una rapida ricerca su alcuni benchmark su Google e non ho trovato molto.

È stato utile?

Soluzione

Ho utilizzato mod_rewrite su siti che ottengono milioni/visite/mese senza problemi di prestazioni significativi.Devi sapere quali riscritture vengono applicate per prime a seconda delle tue regole.

L'uso di mod_rewrite è molto probabilmente più veloce dell'analisi dell'URL con la tua lingua corrente.

Se sei veramente preoccupato per le prestazioni, non usarlo .htaccess file, quelli sono lenti.Inserisci tutte le regole di riscrittura nella configurazione di Apache, che viene letta solo una volta all'avvio. .htaccess i file vengono analizzati nuovamente ad ogni richiesta, insieme a ogni .htaccess file nelle cartelle principali.

Altri suggerimenti

Per riecheggiare ciò che Ryan dice sopra, le regole in a .htaccess può davvero ridurre i tempi di caricamento su un sito affollato rispetto ad avere le regole nel file di configurazione.Inizialmente l'abbiamo provato (~60 milioni di pagine al mese) ma non è durato a lungo finché i nostri server non hanno iniziato a fumare :)

L'ovvio svantaggio di avere le regole nella configurazione è che devi ricaricare la configurazione ogni volta che modifichi le regole.

L'ultimo flag ("L") è utile per accelerare l'esecuzione delle regole, una volta che le regole a cui si accede più frequentemente sono in cima e valutate per prime.Tuttavia, può rendere la manutenzione molto più complicata se si dispone di una lunga serie di regole: una mattina ho sprecato un paio di ore molto frustranti mentre stavo modificando a metà la mia lista di regole e ne avevo una in cima che intrappolava più di previsto!

Abbiamo avuto difficoltà anche a trovare benchmark rilevanti e abbiamo finito per elaborare la nostra suite interna di test.Una volta che le nostre regole sono state risolte, ordinate correttamente e inserite nella nostra configurazione di Apache, non abbiamo riscontrato un impatto molto negativo sulle prestazioni.

Se sei preoccupato per le prestazioni di Apache, una cosa da considerare se hai molte regole di riscrittura è usare il flag "salta".È un modo per saltare la corrispondenza delle regole.Pertanto, qualsiasi sovraccarico sarebbe stato speso per la corrispondenza viene risparmiato.

Fai attenzione però, ero su un progetto che utilizzava molto il flag "salta" e rendeva dolorosa la manutenzione, poiché dipende dall'ordine in cui le cose sono scritte nel file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top