nginx: przepisywanie adresów URL i wydajność


Mam witrynę internetową, w której muszę zmienić strukturę adresu URL. Tak wyglądają stare adresy URL
/olddir/part1_de.htm
nowe będą wyglądać
/newdir/sub/category/anotherpage.htm
... Mam do zrobienia wiele przeróbek adresów URL, w sumie będzie około 500 oddzielnych przeróbek.
Ponieważ moja witryna generuje dość duży ruch, moim największym zmartwieniem jest wydajność. Moje pytania:
  • Domyślam się, że dla każdego żądania blok przepisywania zostanie przeanalizowany, a wyrażenie regularne zostanie ocenione. Mam rację
  • Czy nastąpi utrata wydajności, jeśli użyję tych nadpisań Czy Nginx sobie z tym poradzi
  • Czy są jakieś „najlepsze praktyki”, których należy przestrzegać podczas częstego przepisywania

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

możesz znaleźć

moduł karty
http://wiki.nginx.org/HttpMapModule
aby działały lepiej, zwłaszcza jeśli większość adresów URL nie musi być wyrażeniami regularnymi. Na przykład (nie testowano):
map $uri $new {
/olddir/part1_de.htm/newdir/sub/category/anotherpage.htm;
~^/olddir/part(?<num>[0-9]+)_en.htm$/newdir/sub/category/part$num;
...
}if ($new) {
rewrite ^ $new permanent;
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nginx kompiluje swoją konfigurację do pewnego rodzaju drzewa binarnego podczas początkowego uruchamiania lub przeładowywania konfiguracji (nie przy każdym żądaniu). Dlatego można użyć nadpisywania, ale zalecaną opcją i najlepszą praktyką jest użycie dyrektywy try_files, gdy tylko jest to możliwe.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się