Rue de l'info

Article

Comment faire une redirection avec Nginx ?

par | 11-05-2018 | Nginx, Tutos | 1 commentaire

Aujourd’hui un des serveurs HTTP le plus utilisé est Nginx, qui a été conçu  pour répondre au problème C10K où le but est d’être capable de répondre à plus de 10 000 requêtes simultanées. Nginx est donc le server http le plus performant lors d’une montée en charge important avec un système de worker. Là ou apache crée un processus par connexion, Nginx lance une série de workers qui vont chacun être capable de gérer de multiples connexions d’une manière non bloquante. Rue de l’info vous explique ci-dessous en détails, la méthode pour effectuer une redirection Nginx.

Redirection Nginx simple : (d’une page à une autre)

Le mot clé “permanent” signifie que la redirection sera de type 301, alors que “redirect” signifie qu’elle sera de type 302 donc temporaire.

Redirection d’un groupe d’URL

Dans cette exemple j’utilise les expressions régulières, redirige un groupe d’URL avec une syntaxe commune.

Redirection d’une URL avec paramètres vers une URL sans paramètre

Dans ce cas, j’ai une URL avec un paramètre limite égale à 50, ce paramètre ne set plus je voudrais donc m’en débarrasser.

Le point d’interrogation à la fin de l’URL rewrite permet de dire à Nginx de ne pas ajouter les paramètres derrière l’URL.

La variable “args” définit les paramètres. Location permet de définir le pattern d’URL concernés par le rewrite. Le ~ introduit une expression régulière (sensible à la casse).

.

Redirection d’une URL si un paramètre existe

Ici je redirige les URL finissants par /demo.html ayant au moins un paramètre, peu importe la valeur, vers une URL sans paramètre

Ici je  fais la même chose en récupérant le paramètre article et en le plaçant comme Slug dans la nouvelle URL

Redirection vers le sous-domaine www

Ici je redirige toutes les URL de domaine.com vers www.domaine.com

Redirection ou code serveur spécifique en fonction du user-agent

Dans ce cas j’ai besoin de bloquer le Crawl de Google et Bing pour certaines pages. Pour cela on vérifie le user agent qui se présente. J’envoie donc un forbidden sur une page que Googlebot ou Bingbot. L’utilisation de “break” indique que le serveur ne doit appliquer les directives qu’à l’intérieur du bloc défini par “location”. A l’inverse avec “last”, le serveur recherche une URL qui pourrait matcher avec le pattern dans tous les blocs “location”.

Redirection en fonction d’un code serveur

Vérification et redémarrage

Une fois toutes vos modifications effectuées il ne faut pas oublier de recharger la configuration en redémarrant Nginx.

Si vous avez des questions sur la redirection Nginx, propositions ou astuces qui pourraient aider à faire grandir le partage d’informations, n’hésitez pas à nous contacter !