Après avoir passé plusieurs heures sans aucune réponse satisfaisante, j’ai enfin trouvé la solution du redirect.
Varnish n’a pas la possibilité de faire un redirect « simplement », il faut normalement laisser cela au « backend », c’est à dire au serveur derrière (Apache ou autre).
Mais moi je ne voulais pas. C’est mon droit non ?
Voici comment faire un redirect qui fonctionne :
sub vcl_recv {
# Rediriger tous les ".fr" vers ".com"
if (
(req.http.host ~ "(.*)monsite\.fr$")
) {
# ! error = envoyer vers la sous-routine "vcl_error"
set req.http.x-redir = "http://www.bb.com" + req.url;
return(synth(850, "Moved permanently"));
}
}
L’astuce principale était : utiliser vcl_synth
D’après le code, je vous résume ce que j’ai compris : si jamais on a un status 850 qui semble être un ordre particulier, alors automatiquement changer les headers en y appliquant la redirection, et les renvoyer directement le résultat.
Donc, après la routine vcl_recv il vous suffit d’ajouter vcl_synth comme ceci :
sub vcl_synth {
if (resp.status == 850) {
set resp.http.Location = req.http.x-redir;
set resp.status = 302;
return (deliver);
}
}
Voici un mémo de mon expérience très rapide de github, qui n’est destiné à l’origine qu’à moi, mais que je partage pour ceux qui voudraient aller vite :
Forker un repo : c’est à dire, faire « sa » propre branche d’un source pour pouvoir travailler dessus. Sur github : en haut à droite du « repo » principal, vous avec le menu « fork ». Cliquez dessus et c’est fini !
Details »» ici ««
Copier en local
De l’étape précédente, vous aurez une adresse genre https://github.com/VOTRE-USERNAME/repo-qui-vous-plait
Faites : git clone https://github.com/VOTRE-USERNAME/repo-qui-vous-plait
et git fera un copier coller en local des sources github
Ajouter le repo d’origine pour les futures synchronisations :
Copier coller l’URL du repo d’origine qui est sur github : git remote add upstream https://github.com/repo-qui-vous-plait
Assurez-vous que tout est ok :
Avec ce code : git remote -v
Vous devriez avoir : origin https://github.com/VOTRE-USERNAME/repo-qui-vous-plait.git (fetch)
origin https://github.com/VOTRE-USERNAME/repo-qui-vous-plait.git (push)
upstream https://github.com/POSSESSEUR-DU-REPO/repo-qui-vous-plait.git (fetch)
upstream https://github.com/POSSESSEUR-DU-REPO/repo-qui-vous-plait.git (push)
Ensuite ces étapes en boucle :
Repo origine distant vers local :
Ce qui a été fait par les autres sur le repo général (s’il y en a) vers local. git fetch upstream
Repo perso distant vers local :
Ce qui a été fait par les autres sur votre repo (s’il y en a) vers local. git checkout master
puis git merge upstream/master
Details »» ici ««
Noter vos modifications en local :
Préciser à git de chercher (1) toutes vos modifications, option « a » (2) le commentaire, option « m ». git commit -am "Mon commentaire"
Appliquer vos modifications à distance : git push
Details pas de github, mais en français et très bien faits :
»» ici ««
J’ai eu une discussion avec des fans de Symfony il y a quelques temps. Ils me soutenaient (avec une prétention qui m’a surpris) que Php était de très loin le langage le plus recherché actuellement. Ils se trompaient lourdement. Dire que Php est le langage le plus utilisé, oui. Dire qu’il est le plus demandé, et qu’il le restera, non.
Python est l’avenir
Aucune discussion possible.
Python c’est tout. End of story
Voici le mail que j’ai envoyé récemment à plusieurs de mes clients, et, qui explique la tendance python :
En tapant « most popular development languages » sur google, on voit que :
Enfin je l’ai appris ce matin de la part d’un professeur : deux universités de France retirent Php pour le remplacer par Python cette année (si vous êtes intéressé je vous dirais lesquelles, je n’ai plus en tête les villes de ces universités).
J’imagine les gens de mauvaise foi qui vont aller chercher sur le Web et sortir les deux ou trois sites qui mettent Php devant Python… oui vous allez en trouver, mais en proportion, la plupart des sites expliquent que la tendance d’aujourd’hui c’est Python et JavaScript. Quant à ce dernier, moi qui ai fait quelques sites en NodeJS, je confirme que c’est l’âge de pierre aussi bien côté serveur Web que côté langage JavaScript lui-même… peut être qu’enfin à sa version 6, il fera du scoping normal (lisez ici) déjà rien que ça c’est moisi, sans parler des principes des closures qui empêchent carrément de faire de grosses applications qu’on peut facilement maintenir… là aussi, je ne pourrai jamais convaincre des gens qui ont principalement fait du JavaScript sans avoir essayé aussi intensivement d’autres langages (on ne peut pas comparer dans ce cadre, et toute discussion devient alors impossible)…
C’est bien, je vais enfin avoir l’argument massue pour tous ceux qui critiquent Linux : une faille critique sur Windows Server 2003 qui permet de devenir maître du système à distance ne sera jamais corrigée.
Je vous rappelle qu’on paie pour une license, et que la sécurité fait partie des choses pour lesquelles on paie (on paie en partie pour les mises à jour et ces dernières corrigent les bogues et problèmes de sécurité).
Il suffira donc juste d’avoir le programme qui permet d’exploiter cette faille et si on veut être méchant, on le pourra !
Je vais expliquer comment j’ai configuré mon clavier.
Tout d’abord voici les…
Idées sur lesquelles je suis parti :
Je ne veux pas réapprendre toutes les touches, je n’ai pas que ça à faire. ;
Je veux que toutes les touches difficiles d’accès deviennent faciles d’accès ;
Je veux bouger le moins possible mes doigts ;
Je veux pouvoir développer et accéder au moins aussi rapidement qu’avant aux touches spéciales pour les développeurs ;
Donc voici ce que j’ai mis en place. Avant de le montrer…
Ma façon de raisonner :
Clavier en mode normal : toutes les touches accessibles comme un clavier AZERTY. Très facile. ;
Touches développeur à gauche : le clavier français est tout simplement le clavier le moins bien pensé pour les développeurs. Autant le clavier QWERTY donne la possibilité d’accéder facilement aux accolades, crochets et autres pipes, slash et antislashes, autant le clavier français est un calvaire : c’est pourquoi j’ai pensé à mettre toutes ces touches faciles d’accès ;
De la même façon, les touches de déplacement. Quand on y réfléchit bien, les touches fléchées sont bien, mais elles ne sont pas disposées logiquement : c’est juste une habitude qu’on a pris, ça ne signifie pas que c’est le plus pratique. Exemple simple : quand on va à gauche, c’est la flèche gauche. En réfléchissant un peu, si on veut aller beaucoup plus à gauche, il faudrait, logiquement avoir une touche supplémentaire à gauche, et pas une touche totalement dégroupée au dessus comme c’est le cas sur tous les claviers classiques. Donc sur ma configuration, lorsqu’on accède aux touches de déplacement, j’ai, à gauche de la « flèche gauche », la touche « home », et pas au dessus. C’est juste un repère spatial très simple, et ça fonctionne à merveille !
Ensuite il me fallait le pavé numérique. J’ai donc crée une couche pour le pavé numérique. Comme c’est toujours avec la main droite qu’on accède au pavé numérique, je l’ai laissé à droite. Le côté gauche, lui, est réservé aux lettres accentuées. ;
Enfin, j’ai dû gérer les touches de fonction : comme il n’y avait plus de place pour les disposer de manière logique j’ai fait une dernière couche « fonctions ». Sur cette couche, il me restait beaucoup de touches disponibles. J’ai donc utilisé une des possibilités géniales du clavier : les macros. On peut jouer une suite de touches en n’appuyant que sur une seule lettre. Génial. Avec un petit bémol que je dis à la fin de cette page. Par exemple, pour écrire l’espace insécable, qui est j’appuie sur une touche « FN » (fonction) et la lettre « e » et hop il me fait tout. Vous pourriez tout à fait dire « oui mais on peut tout à fait faire ça sur l’éditeur : on configure un raccourci clavier. Ce à quoi je répondrai : oui mais tu ne peux pas prendre ta configuration et faire du plug n play n’importe où, alors que mon Ergodox, je le prends et je le branche sur n’importe quel PC, ça fonctionnera ! 🙂
Pour terminer, je ne vais pas entrer dans le détail, mais j’ai retravaillé le code du développeur qui a fait le portage d’un programme qui gère les claviers USB entièrement configurables. Avec ma « grosse » retouche – mais qui n’est que dans le clavier français, ainsi pas de souci, on peut avoir tout de suite une vision très claire et simple des touches qui seront affichées, et juste en dessous, de la touche réelle envoyée en USB. C’est très pratique, surtout si jamais vous voulez modifier votre configuration clavier, tout fonctionnera du premier coup et facilement. Le code d’origine était fonctionnel, mais dur à lire. Là, c’est sympa et c’est un jeu d’enfant. Il vous suffit juste de trouver la correspondance avec la bonne touche : par exemple, si vous voulez envoyer le « a », vous allez dans ma table de correspondance (page Ergodox AZERTY configuration juste un peu au dessus de celle en cours) et vous chercher où est le « a » dans la colonne de droite. Vous verrez qu’il faut envoyer la lettre « Q » et vous modifiez la touche que vous voulez, et tout fonctionnera.
Donc voici les images de…
chaque « couche » clavier :
…même s’ils elles ne sont pas très lisibles, cliquez dessus pour avoir la version plus grande :
Couche 0
AZERTY normal :
,--------------------------------------------------. ,--------------------------------------------------.
| Esc | & 1 | é 2 | " 3 | ' 4 | ( 5 | ^L3 | | Pscr | - 6 | è 7 | _ 8 | ç 9 | à 0 | Bspc |
|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
| Tab | a A | z Z | e E | r R | t T | Bspc | | ~L1 | y Y | u U | i I | o O | p P | ^ ¨ |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| . | q Q | s S | d D | f F | g G |------| |------| h H | j J | k K | l L | m M | Enter |
|--------+------+------+------+------+------| Ent | | Ins |------+------+------+------+------+--------|
| Lsft | w W | x X | c C | v V | b B | | | | n N | , ? | ; . | : / | ! § | Rsft |
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
| LCtl | LGui | LAlt | Lsft | Del | | Spc | Spc | RAlt | RGui | RCtl |
`----------------------------------' `----------------------------------'
,-------------. ,-------------.
| Copy | Pste | | Nbsp | F8 |
,------|------|------| |------+------+------.
| | | Cut | | <> | | |
| ~L1 | ~L2 |------| |------| ~L2 | ~L1 |
| | | Del | | </> | | |
`--------------------' `--------------------'
Couche 1
Caractères pour le développement à gauche, mouvements du curseur et copier coller à droite :