NGINX: Dokładne dopasowanie lokalizacji
25 Feb 2018
best-practices http location nginx
Dokładne dopasowania lokalizacji są często używane do przyspieszenia procesu wyboru poprzez natychmiastowe zakończenie wykonywania algorytmu związanego z wyborem i dalszym przetwarzaniem żądań. Jeśli zostanie znalezione dokładne dopasowanie, wyszukiwanie zostanie zakończone.
Przy pomocy modyfikatora =
można zdefiniować dokładne dopasowanie identyfikatora URI i lokalizacji. Taka konstrukcja ma najwyższy priorytet w całym mechanizmie odpowiedzialnym za podejmowanie decyzji związanych z wyborem lokalizacji, jest bardzo szybka w przetwarzaniu i pozwala zaoszczędzić znaczną liczbę cykli procesora.
Wyrażenia regularne, gdy są obecne, mają pierwszeństwo przed prostym dopasowaniem URI i mogą zwiększać obciążenie obliczeniowe w zależności od ich złożoności. Na przykład, jeśli często występuje żądanie /
, zdefiniowanie location = /
przyspieszy przetwarzanie tych żądań, ponieważ wyszukiwanie kończy się zaraz po pierwszym porównaniu. Taka lokalizacja nie może oczywiście zawierać zagnieżdżonych lokalizacji.
Przykłady:
# Pasuje tylko do zapytania / i zatrzymuje wyszukiwanie:
location = / {
...
}
# Pasuje tylko do zapytania /v9 i zatrzymuje wyszukiwanie:
location = /v9 {
...
}
...
# Pasuje do każdego zapytania ze względu na fakt, że wszystkie zapytania zaczynają się od /,
# jednak wyrażenia regularne i wszelkie dłuższe bloki (jeśli występują)
# zostaną dopasowane w pierwszej kolejności:
location / {
...
}