[{"data":1,"prerenderedAt":1699},["ShallowReactive",2],{"blog-\u002Fblog\u002Finstallation-des-proxy-inverses-pound-varnish":3,"blog-\u002Fblog\u002Finstallation-des-proxy-inverses-pound-varnish-surround":1642,"blog-\u002Fblog\u002Finstallation-des-proxy-inverses-pound-varnish-certifications":1698},{"id":4,"title":5,"body":6,"categories":1631,"cover":1632,"cover_contain":533,"credly_badge_id":1631,"date":1633,"description":1634,"extension":1635,"meta":1636,"navigation":533,"path":1637,"related_certifications":1631,"seo":1638,"slug":1639,"stem":1640,"__hash__":1641},"blog\u002Fblog\u002Finstallation-des-proxy-inverses-pound-varnish.md","Installation des proxy inverses Pound et Varnish",{"type":7,"value":8,"toc":1619},"minimark",[9,14,18,106,110,167,172,179,183,274,291,298,302,325,347,359,378,392,415,420,435,439,448,460,463,480,490,502,505,845,876,893,927,969,972,985,993,997,1008,1022,1026,1044,1056,1059,1213,1219,1231,1234,1483,1514,1517,1530,1555,1560,1566,1585,1592,1605,1608,1612,1615],[10,11,13],"h2",{"id":12},"cas-dusage-concret","Cas d'usage concret",[15,16,17],"p",{},"Vous devez répartir la charge et mettre en cache vos applications web : voici comment installer les proxy inverses Pound et Varnish.",[15,19,20,24,25,28,29,32,33,36,37,40,41,44,45,48,49,48,52,55,56,59,60,40,63,65,66,73,74,76,79,80,83,84,87,88,90,91,94,95,40,98,100,101,40],{},[21,22,23],"strong",{},"Un proxy inverse"," ou ",[21,26,27],{},"reverse proxy"," est un ",[21,30,31],{},"type de serveur",", placé ",[21,34,35],{},"frontalement"," sur ",[21,38,39],{},"internet",".",[42,43],"br",{},"\nIl permet à un ",[21,46,47],{},"utilisateur"," d’",[21,50,51],{},"Internet",[21,53,54],{},"accéder"," à des ",[21,57,58],{},"serveurs"," placés dans un ",[21,61,62],{},"LAN",[42,64],{},"\nPour plus d’informations sur les possibilités d’un ",[67,68,72],"a",{"href":69,"rel":70},"http:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FProxy_inverse",[71],"nofollow","proxy inverse,"," consultez Wikipedia.",[42,75],{},[21,77,78],{},"Pound"," et ",[21,81,82],{},"Varnish"," sont des ",[21,85,86],{},"proxy inverses"," et ils seront utilisés en complément l’un de l’autre.",[42,89],{},"\nCet article s’oriente donc sur l’usage de ",[21,92,93],{},"reverse proxy HTTPS vers HTTP"," avec un ",[21,96,97],{},"Mémoire cache",[42,99],{},"\nUn article intéressant sur ",[67,102,105],{"href":103,"rel":104},"http:\u002F\u002Fwww.journaldunet.com\u002Fsolutions\u002Fsystemes-reseaux\u002Fdecryptages\u002F07\u002F0627-qr-reverse-proxy.shtml",[71],"le reverse proxy en 5 questions",[10,107,109],{"id":108},"les-reverses-proxy-pound-et-varnish","Les reverses proxy : Pound et Varnish",[15,111,112,113,115,116,79,119,122,123,126,127,130,131,134,135,137,28,139,142,143,40,146,148,149,115,152,155,156,159,160,163,164,40],{},"Pound est un ",[21,114,27],{}," très ",[21,117,118],{},"léger",[21,120,121],{},"performant",", capable de traiter les ",[21,124,125],{},"requêtes HTTPS"," et il peut ",[21,128,129],{},"répartir la charge"," de travail en envoyant les ",[21,132,133],{},"requêtes Web"," aux machines les moins occupées.",[42,136],{},[21,138,82],{},[21,140,141],{},"accélérateur HTTP"," son rôle est de ",[21,144,145],{},"mettre en cache les requêtes web",[42,147],{},"\nSitué dans une position idéale, il soulage les serveurs web avec des possibilités de ",[21,150,151],{},"configuration",[21,153,154],{},"poussées"," avec son ",[21,157,158],{},"langage"," de ",[21,161,162],{},"programmation"," : ",[21,165,166],{},"Varnish Configuration Language",[168,169,171],"h3",{"id":170},"utilisation-de-pound-et-varnish","Utilisation de Pound et Varnish  :",[15,173,174],{},[175,176],"img",{"alt":177,"src":178},"","\u002Fimages\u002Fblog\u002Finstallation-des-proxy-inverses-pound-varnish\u002F56583660f9.png",[168,180,182],{"id":181},"détail-du-fonctionnement","Détail du fonctionnement :",[15,184,185,188,189,192,193,195,196,199,200,203,204,206,207,210,211,213,214,216,217,220,221,40,224,226,227,229,230,233,234,237,238,40,241,243,244,247,248,251,252,255,256,40,259,261,262,265,266,269,270,273],{},[21,186,187],{},"Vyatta"," englobe notre ",[21,190,191],{},"réseau"," en plusieurs zones : Bleu, Violette, Orange.",[42,194],{},"\nL’IP public (",[21,197,198],{},"eth0",") est naté vers l’IP privé (",[21,201,202],{},"eth1",") de ",[21,205,78],{}," et accepte les ",[21,208,209],{},"protocoles"," : 80 et 443.",[42,212],{},"\nPound réceptionne les requêtes et les fait suivre à Varnish en HTTP.",[42,215],{},"\nPuis, Varnish renvoie la requête vers l’un et\u002Fou l’autre des serveurs : ",[21,218,219],{},"OwnCloud"," et ou ",[21,222,223],{},"Diaspora",[42,225],{},"\nA l’intérieur de notre ",[21,228,62],{},", les ",[21,231,232],{},"requêtes"," sont ",[21,235,236],{},"en clair"," car ",[21,239,240],{},"Varnish ne travaille pas en HTTPS",[42,242],{},"\nChaque ",[21,245,246],{},"requête"," traitée par Varnish peut être ",[21,249,250],{},"mise"," en ",[21,253,254],{},"cache",", suivant le ",[21,257,258],{},"fichier de configuration",[42,260],{},"\nDans mon article, ",[21,263,264],{},"Varnish et Pound"," seront ",[21,267,268],{},"installés"," sur le ",[21,271,272],{},"même serveur Debian 7"," :",[275,276,277,284],"ul",{},[278,279,280,281,40],"li",{},"Pound sera utilisé uniquement en tant que  ",[21,282,283],{},"proxy inverse HTTPS",[278,285,286,287,290],{},"Varnish sera utilisé pour ",[21,288,289],{},"gérer les requêtes http"," et les stockera en cache.",[15,292,293,294,297],{},"En plus de fournir une accélération web, et une protection logiciel, la ",[21,295,296],{},"High Scalability"," est possible.",[10,299,301],{"id":300},"installation-de-pound-version-26","Installation de Pound version 2.6",[15,303,304,305,308,309,163,312,315,317,318,159,321,324],{},"Pound sera installé sous la distribution ",[21,306,307],{},"Linux Debian 7",", en ",[21,310,311],{},"version stable",[21,313,314],{},"Pound 2.6",[42,316],{},"\nNous devons rajouter le ",[21,319,320],{},"dépôt officiel",[21,322,323],{},"Debian France"," dans la source liste :",[326,327,331],"pre",{"className":328,"code":329,"language":330,"meta":177,"style":177},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","nano \u002Fetc\u002Fapt\u002Fsource.list\n","bash",[332,333,334],"code",{"__ignoreMap":177},[335,336,339,343],"span",{"class":337,"line":338},"line",1,[335,340,342],{"class":341},"sBMFI","nano",[335,344,346],{"class":345},"sfazB"," \u002Fetc\u002Fapt\u002Fsource.list\n",[15,348,349,350,353,354,159,357,273],{},"Rajouter le ",[21,351,352],{},"miroir"," qui contient le ",[21,355,356],{},"paquet",[21,358,78],{},[326,360,362],{"className":328,"code":361,"language":330,"meta":177,"style":177},"deb http:\u002F\u002Fftp.fr.debian.org\u002Fdebian wheezy main\n",[332,363,364],{"__ignoreMap":177},[335,365,366,369,372,375],{"class":337,"line":338},[335,367,368],{"class":341},"deb",[335,370,371],{"class":345}," http:\u002F\u002Fftp.fr.debian.org\u002Fdebian",[335,373,374],{"class":345}," wheezy",[335,376,377],{"class":345}," main\n",[15,379,380,383,384,387,388,391],{},[21,381,382],{},"Synchroniser"," vos ",[21,385,386],{},"miroirs"," et installer les ",[21,389,390],{},"updates"," disponibles :",[326,393,395],{"className":328,"code":394,"language":330,"meta":177,"style":177},"apt-get update && apt-get upgrade\n",[332,396,397],{"__ignoreMap":177},[335,398,399,402,405,409,412],{"class":337,"line":338},[335,400,401],{"class":341},"apt-get",[335,403,404],{"class":345}," update",[335,406,408],{"class":407},"sMK4o"," &&",[335,410,411],{"class":341}," apt-get",[335,413,414],{"class":345}," upgrade\n",[15,416,417,273],{},[21,418,419],{},"Installer Pound",[326,421,423],{"className":328,"code":422,"language":330,"meta":177,"style":177},"apt-get install pound\n",[332,424,425],{"__ignoreMap":177},[335,426,427,429,432],{"class":337,"line":338},[335,428,401],{"class":341},[335,430,431],{"class":345}," install",[335,433,434],{"class":345}," pound\n",[10,436,438],{"id":437},"configuration-de-pound-version-26","Configuration de Pound version 2.6",[15,440,441,442,444,445,273],{},"Avant de commencer, je vous conseille de lancer ",[21,443,78],{}," à chaque ",[21,446,447],{},"démarrage",[326,449,451],{"className":328,"code":450,"language":330,"meta":177,"style":177},"nano \u002Fetc\u002Fdefault\u002Fpound\n",[332,452,453],{"__ignoreMap":177},[335,454,455,457],{"class":337,"line":338},[335,456,342],{"class":341},[335,458,459],{"class":345}," \u002Fetc\u002Fdefault\u002Fpound\n",[15,461,462],{},"Modifier l’option suivante:",[326,464,466],{"className":328,"code":465,"language":330,"meta":177,"style":177},"startup=1\n",[332,467,468],{"__ignoreMap":177},[335,469,470,474,477],{"class":337,"line":338},[335,471,473],{"class":472},"sTEyZ","startup",[335,475,476],{"class":407},"=",[335,478,479],{"class":345},"1\n",[15,481,482,483,485,486,489],{},"Pour la suite, le fichier de ",[21,484,151],{}," est ",[21,487,488],{},"pound.cfg",", ouvrez-le :",[326,491,493],{"className":328,"code":492,"language":330,"meta":177,"style":177},"nano \u002Fetc\u002Fpound\u002Fpound.cfg\n",[332,494,495],{"__ignoreMap":177},[335,496,497,499],{"class":337,"line":338},[335,498,342],{"class":341},[335,500,501],{"class":345}," \u002Fetc\u002Fpound\u002Fpound.cfg\n",[15,503,504],{},"Mon fichier de configuration  :",[326,506,508],{"className":328,"code":507,"language":330,"meta":177,"style":177},"## Minimal sample pound.cfg\n##\n## see pound(8) for details\n\n######################################################################\n## global options:\n\nUser            \"www-data\"\nGroup           \"www-data\"\n#RootJail       \"\u002Fchroot\u002Fpound\"\n\n## Logging: (goes to syslog by default)\n##      0       no logging\n##      1       normal\n##      2       extended\n##      3       Apache-style (common log format)\nLogLevel        1\n\n## check backend every X secs:\nAlive           30\n\n## use hardware-accelleration card supported by openssl(1):\n#SSLEngine      \"\"\n\n# poundctl control socket\nControl \"\u002Fvar\u002Frun\u002Fpound\u002Fpoundctl.socket\"\n\n######################################################################\n## listen, redirect and ... to:\n\n## redirect all requests on port 8080 (\"ListenHTTP\") to the local webserver (see \"Service\" below):\nListenHTTPS\n        Address 192.168.0.2\n        Port 443\n        Cert \"\u002Fetc\u002Fpound\u002Fssl\u002Fowncloud\u002Fowncloud.kassianoff.pem\"\n        Cert \"\u002Fetc\u002Fpound\u002Fssl\u002Fdiaspora\u002Fdiaspora.kassianoff.pem\"\n        AddHeader \"X-Forwarded-Proto: https\"\n        ## allow PUT and DELETE also (by default only GET, POST and HEAD)?:\n        xHTTP           2\n        Service\n                BackEnd\n                        Address 127.0.0.1\n                        Port    80\n                End\n        End\nEnd\n",[332,509,510,516,522,528,535,541,547,552,567,580,586,591,597,603,609,615,621,631,636,642,651,656,662,668,673,679,693,698,703,709,714,720,726,735,744,757,769,782,788,797,803,809,818,827,833,839],{"__ignoreMap":177},[335,511,512],{"class":337,"line":338},[335,513,515],{"class":514},"sHwdD","## Minimal sample pound.cfg\n",[335,517,519],{"class":337,"line":518},2,[335,520,521],{"class":514},"##\n",[335,523,525],{"class":337,"line":524},3,[335,526,527],{"class":514},"## see pound(8) for details\n",[335,529,531],{"class":337,"line":530},4,[335,532,534],{"emptyLinePlaceholder":533},true,"\n",[335,536,538],{"class":337,"line":537},5,[335,539,540],{"class":514},"######################################################################\n",[335,542,544],{"class":337,"line":543},6,[335,545,546],{"class":514},"## global options:\n",[335,548,550],{"class":337,"line":549},7,[335,551,534],{"emptyLinePlaceholder":533},[335,553,555,558,561,564],{"class":337,"line":554},8,[335,556,557],{"class":341},"User",[335,559,560],{"class":407},"            \"",[335,562,563],{"class":345},"www-data",[335,565,566],{"class":407},"\"\n",[335,568,570,573,576,578],{"class":337,"line":569},9,[335,571,572],{"class":341},"Group",[335,574,575],{"class":407},"           \"",[335,577,563],{"class":345},[335,579,566],{"class":407},[335,581,583],{"class":337,"line":582},10,[335,584,585],{"class":514},"#RootJail       \"\u002Fchroot\u002Fpound\"\n",[335,587,589],{"class":337,"line":588},11,[335,590,534],{"emptyLinePlaceholder":533},[335,592,594],{"class":337,"line":593},12,[335,595,596],{"class":514},"## Logging: (goes to syslog by default)\n",[335,598,600],{"class":337,"line":599},13,[335,601,602],{"class":514},"##      0       no logging\n",[335,604,606],{"class":337,"line":605},14,[335,607,608],{"class":514},"##      1       normal\n",[335,610,612],{"class":337,"line":611},15,[335,613,614],{"class":514},"##      2       extended\n",[335,616,618],{"class":337,"line":617},16,[335,619,620],{"class":514},"##      3       Apache-style (common log format)\n",[335,622,624,627],{"class":337,"line":623},17,[335,625,626],{"class":341},"LogLevel",[335,628,630],{"class":629},"sbssI","        1\n",[335,632,634],{"class":337,"line":633},18,[335,635,534],{"emptyLinePlaceholder":533},[335,637,639],{"class":337,"line":638},19,[335,640,641],{"class":514},"## check backend every X secs:\n",[335,643,645,648],{"class":337,"line":644},20,[335,646,647],{"class":341},"Alive",[335,649,650],{"class":629},"           30\n",[335,652,654],{"class":337,"line":653},21,[335,655,534],{"emptyLinePlaceholder":533},[335,657,659],{"class":337,"line":658},22,[335,660,661],{"class":514},"## use hardware-accelleration card supported by openssl(1):\n",[335,663,665],{"class":337,"line":664},23,[335,666,667],{"class":514},"#SSLEngine      \"\"\n",[335,669,671],{"class":337,"line":670},24,[335,672,534],{"emptyLinePlaceholder":533},[335,674,676],{"class":337,"line":675},25,[335,677,678],{"class":514},"# poundctl control socket\n",[335,680,682,685,688,691],{"class":337,"line":681},26,[335,683,684],{"class":341},"Control",[335,686,687],{"class":407}," \"",[335,689,690],{"class":345},"\u002Fvar\u002Frun\u002Fpound\u002Fpoundctl.socket",[335,692,566],{"class":407},[335,694,696],{"class":337,"line":695},27,[335,697,534],{"emptyLinePlaceholder":533},[335,699,701],{"class":337,"line":700},28,[335,702,540],{"class":514},[335,704,706],{"class":337,"line":705},29,[335,707,708],{"class":514},"## listen, redirect and ... to:\n",[335,710,712],{"class":337,"line":711},30,[335,713,534],{"emptyLinePlaceholder":533},[335,715,717],{"class":337,"line":716},31,[335,718,719],{"class":514},"## redirect all requests on port 8080 (\"ListenHTTP\") to the local webserver (see \"Service\" below):\n",[335,721,723],{"class":337,"line":722},32,[335,724,725],{"class":341},"ListenHTTPS\n",[335,727,729,732],{"class":337,"line":728},33,[335,730,731],{"class":341},"        Address",[335,733,734],{"class":629}," 192.168.0.2\n",[335,736,738,741],{"class":337,"line":737},34,[335,739,740],{"class":341},"        Port",[335,742,743],{"class":629}," 443\n",[335,745,747,750,752,755],{"class":337,"line":746},35,[335,748,749],{"class":341},"        Cert",[335,751,687],{"class":407},[335,753,754],{"class":345},"\u002Fetc\u002Fpound\u002Fssl\u002Fowncloud\u002Fowncloud.kassianoff.pem",[335,756,566],{"class":407},[335,758,760,762,764,767],{"class":337,"line":759},36,[335,761,749],{"class":341},[335,763,687],{"class":407},[335,765,766],{"class":345},"\u002Fetc\u002Fpound\u002Fssl\u002Fdiaspora\u002Fdiaspora.kassianoff.pem",[335,768,566],{"class":407},[335,770,772,775,777,780],{"class":337,"line":771},37,[335,773,774],{"class":341},"        AddHeader",[335,776,687],{"class":407},[335,778,779],{"class":345},"X-Forwarded-Proto: https",[335,781,566],{"class":407},[335,783,785],{"class":337,"line":784},38,[335,786,787],{"class":514},"        ## allow PUT and DELETE also (by default only GET, POST and HEAD)?:\n",[335,789,791,794],{"class":337,"line":790},39,[335,792,793],{"class":341},"        xHTTP",[335,795,796],{"class":629},"           2\n",[335,798,800],{"class":337,"line":799},40,[335,801,802],{"class":341},"        Service\n",[335,804,806],{"class":337,"line":805},41,[335,807,808],{"class":341},"                BackEnd\n",[335,810,812,815],{"class":337,"line":811},42,[335,813,814],{"class":341},"                        Address",[335,816,817],{"class":629}," 127.0.0.1\n",[335,819,821,824],{"class":337,"line":820},43,[335,822,823],{"class":341},"                        Port",[335,825,826],{"class":629},"    80\n",[335,828,830],{"class":337,"line":829},44,[335,831,832],{"class":341},"                End\n",[335,834,836],{"class":337,"line":835},45,[335,837,838],{"class":341},"        End\n",[335,840,842],{"class":337,"line":841},46,[335,843,844],{"class":341},"End\n",[15,846,847,848,850,851,854,855,857,858,861,862,163,865,79,867,40,869,871,872,875],{},"Pound est exécuté avec l’utilisateur ",[21,849,563],{}," et écoute sur le ",[21,852,853],{},"port 443"," (https) sur 192.168.0.2.",[42,856],{},"\nDeux ",[21,859,860],{},"certificats"," sont générés pour les deux ",[21,863,864],{},"sous-domaines",[21,866,219],{},[21,868,223],{},[42,870],{},"\nVérifier que le ",[21,873,874],{},"nom du certificat"," est identique à votre nom de domaine sans l’extension du domaine :",[326,877,879],{"className":328,"code":878,"language":330,"meta":177,"style":177},"Cert \"\u002Fetc\u002Fpound\u002Fssl\u002Fnom_de_domaine\u002Fnom_de_domaine_.pem\"\n",[332,880,881],{"__ignoreMap":177},[335,882,883,886,888,891],{"class":337,"line":338},[335,884,885],{"class":341},"Cert",[335,887,687],{"class":407},[335,889,890],{"class":345},"\u002Fetc\u002Fpound\u002Fssl\u002Fnom_de_domaine\u002Fnom_de_domaine_.pem",[335,892,566],{"class":407},[15,894,895,269,898,901,902,905,906,909,910,912,913,916,917,920,921,926],{},[21,896,897],{},"Varnish écoute",[21,899,900],{},"port 80"," et est installé sur l",[21,903,904],{},"e même serveur que Pound"," d’où le « ",[21,907,908],{},"BackEnd","« .",[42,911],{},"\nLa ",[21,914,915],{},"requête HTTPS"," est envoyée sur l’adresse ",[21,918,919],{},"127.0.0.1"," du port 80,  Varnish va continuer le processus. Information : pour générer un certificat autosigné (",[67,922,925],{"href":923,"rel":924},"http:\u002F\u002Fdoc.ubuntu-fr.org\u002Fpound",[71],"source",").",[326,928,930],{"className":328,"code":929,"language":330,"meta":177,"style":177},"openssl req -x509 -newkey rsa:1024 -keyout local.server.pem -out local.server.pem -days 365 -nodes\n",[332,931,932],{"__ignoreMap":177},[335,933,934,937,940,943,946,949,952,955,958,960,963,966],{"class":337,"line":338},[335,935,936],{"class":341},"openssl",[335,938,939],{"class":345}," req",[335,941,942],{"class":345}," -x509",[335,944,945],{"class":345}," -newkey",[335,947,948],{"class":345}," rsa:1024",[335,950,951],{"class":345}," -keyout",[335,953,954],{"class":345}," local.server.pem",[335,956,957],{"class":345}," -out",[335,959,954],{"class":345},[335,961,962],{"class":345}," -days",[335,964,965],{"class":629}," 365",[335,967,968],{"class":345}," -nodes\n",[15,970,971],{},"Un petit redémarrage de Pound afin de prendre en compte la configuration ;",[326,973,975],{"className":328,"code":974,"language":330,"meta":177,"style":177},"\u002Fetc\u002Finit.d\u002Fpound restart\n",[332,976,977],{"__ignoreMap":177},[335,978,979,982],{"class":337,"line":338},[335,980,981],{"class":341},"\u002Fetc\u002Finit.d\u002Fpound",[335,983,984],{"class":345}," restart\n",[15,986,987,988],{},"La configuration de Pound est terminé,  pour plus d’information : ",[67,989,992],{"href":990,"rel":991},"http:\u002F\u002Fwww.apsis.ch\u002Fpound",[71],"rendez-vous sur le site officiel.",[10,994,996],{"id":995},"installation-de-varnish","Installation de Varnish",[15,998,999,1000,159,1002,485,1004,1007],{},"Le ",[21,1001,356],{},[21,1003,82],{},[21,1005,1006],{},"disponible"," dans les miroirs par défaut  :",[326,1009,1011],{"className":328,"code":1010,"language":330,"meta":177,"style":177},"apt-get install Varnish\n",[332,1012,1013],{"__ignoreMap":177},[335,1014,1015,1017,1019],{"class":337,"line":338},[335,1016,401],{"class":341},[335,1018,431],{"class":345},[335,1020,1021],{"class":345}," Varnish\n",[10,1023,1025],{"id":1024},"configuration-de-varnish","Configuration de Varnish",[15,1027,1028,1029,159,1031,1033,1034,1037,1038,40,1041,1043],{},"La ",[21,1030,151],{},[21,1032,82],{}," est beaucoup plus ",[21,1035,1036],{},"complexe",", car on utilise le ",[21,1039,1040],{},"langage VCL",[42,1042],{},"\nAvant de se lancer dans la configuration de Varnish, modifier ce fichier  :",[326,1045,1047],{"className":328,"code":1046,"language":330,"meta":177,"style":177},"nano \u002Fetc\u002Fdefault\u002Fvarnish\n",[332,1048,1049],{"__ignoreMap":177},[335,1050,1051,1053],{"class":337,"line":338},[335,1052,342],{"class":341},[335,1054,1055],{"class":345}," \u002Fetc\u002Fdefault\u002Fvarnish\n",[15,1057,1058],{},"Modifier le port d’écoute de Varnish en « 80 » :",[326,1060,1062],{"className":328,"code":1061,"language":330,"meta":177,"style":177},"# Configuration file for varnish\n#\n# \u002Fetc\u002Finit.d\u002Fvarnish expects the variables $DAEMON_OPTS, $NFILES and $MEMLOCK\n# to be set from this shell script fragment.\n#\n# Note: If systemd is installed, this file is obsolete and ignored.  You will\n# need to copy \u002Flib\u002Fsystemd\u002Fsystem\u002Fvarnish.service to \u002Fetc\u002Fsystemd\u002Fsystem\u002F and\n# edit that file.\n\n# Should we start varnishd at boot?  Set to \"no\" to disable.\nSTART=yes\n\n# Maximum number of open files (for ulimit -n)\nNFILES=131072\n\n## Alternative 2, Configuration with VCL\n#\n# Listen on port 6081, administration on localhost:6082, and forward to\n# one content server selected by the vcl file, based on the request.  Use a 1GB\n# fixed-size cache file.\n#\nDAEMON_OPTS=\"-a :80 \n             -T localhost:6082 \n             -f \u002Fetc\u002Fvarnish\u002Fdefault.vcl \n             -S \u002Fetc\u002Fvarnish\u002Fsecret \n             -p send_timeout=1800 \n             -s malloc,256m\"\n",[332,1063,1064,1069,1074,1079,1084,1088,1093,1098,1103,1107,1112,1122,1126,1131,1141,1145,1150,1154,1159,1164,1169,1173,1186,1191,1196,1201,1206],{"__ignoreMap":177},[335,1065,1066],{"class":337,"line":338},[335,1067,1068],{"class":514},"# Configuration file for varnish\n",[335,1070,1071],{"class":337,"line":518},[335,1072,1073],{"class":514},"#\n",[335,1075,1076],{"class":337,"line":524},[335,1077,1078],{"class":514},"# \u002Fetc\u002Finit.d\u002Fvarnish expects the variables $DAEMON_OPTS, $NFILES and $MEMLOCK\n",[335,1080,1081],{"class":337,"line":530},[335,1082,1083],{"class":514},"# to be set from this shell script fragment.\n",[335,1085,1086],{"class":337,"line":537},[335,1087,1073],{"class":514},[335,1089,1090],{"class":337,"line":543},[335,1091,1092],{"class":514},"# Note: If systemd is installed, this file is obsolete and ignored.  You will\n",[335,1094,1095],{"class":337,"line":549},[335,1096,1097],{"class":514},"# need to copy \u002Flib\u002Fsystemd\u002Fsystem\u002Fvarnish.service to \u002Fetc\u002Fsystemd\u002Fsystem\u002F and\n",[335,1099,1100],{"class":337,"line":554},[335,1101,1102],{"class":514},"# edit that file.\n",[335,1104,1105],{"class":337,"line":569},[335,1106,534],{"emptyLinePlaceholder":533},[335,1108,1109],{"class":337,"line":582},[335,1110,1111],{"class":514},"# Should we start varnishd at boot?  Set to \"no\" to disable.\n",[335,1113,1114,1117,1119],{"class":337,"line":588},[335,1115,1116],{"class":472},"START",[335,1118,476],{"class":407},[335,1120,1121],{"class":345},"yes\n",[335,1123,1124],{"class":337,"line":593},[335,1125,534],{"emptyLinePlaceholder":533},[335,1127,1128],{"class":337,"line":599},[335,1129,1130],{"class":514},"# Maximum number of open files (for ulimit -n)\n",[335,1132,1133,1136,1138],{"class":337,"line":605},[335,1134,1135],{"class":472},"NFILES",[335,1137,476],{"class":407},[335,1139,1140],{"class":345},"131072\n",[335,1142,1143],{"class":337,"line":611},[335,1144,534],{"emptyLinePlaceholder":533},[335,1146,1147],{"class":337,"line":617},[335,1148,1149],{"class":514},"## Alternative 2, Configuration with VCL\n",[335,1151,1152],{"class":337,"line":623},[335,1153,1073],{"class":514},[335,1155,1156],{"class":337,"line":633},[335,1157,1158],{"class":514},"# Listen on port 6081, administration on localhost:6082, and forward to\n",[335,1160,1161],{"class":337,"line":638},[335,1162,1163],{"class":514},"# one content server selected by the vcl file, based on the request.  Use a 1GB\n",[335,1165,1166],{"class":337,"line":644},[335,1167,1168],{"class":514},"# fixed-size cache file.\n",[335,1170,1171],{"class":337,"line":653},[335,1172,1073],{"class":514},[335,1174,1175,1178,1180,1183],{"class":337,"line":658},[335,1176,1177],{"class":472},"DAEMON_OPTS",[335,1179,476],{"class":407},[335,1181,1182],{"class":407},"\"",[335,1184,1185],{"class":345},"-a :80 \n",[335,1187,1188],{"class":337,"line":664},[335,1189,1190],{"class":345},"             -T localhost:6082 \n",[335,1192,1193],{"class":337,"line":670},[335,1194,1195],{"class":345},"             -f \u002Fetc\u002Fvarnish\u002Fdefault.vcl \n",[335,1197,1198],{"class":337,"line":675},[335,1199,1200],{"class":345},"             -S \u002Fetc\u002Fvarnish\u002Fsecret \n",[335,1202,1203],{"class":337,"line":681},[335,1204,1205],{"class":345},"             -p send_timeout=1800 \n",[335,1207,1208,1211],{"class":337,"line":695},[335,1209,1210],{"class":345},"             -s malloc,256m",[335,1212,566],{"class":407},[15,1214,1215,1216,1218],{},"Comme précisé dans la variable « ",[21,1217,1177],{}," » modifier le fichier de configuration par défaut.",[326,1220,1222],{"className":328,"code":1221,"language":330,"meta":177,"style":177},"nano \u002Fetc\u002Fvarnish\u002Fdefault.vcl\n",[332,1223,1224],{"__ignoreMap":177},[335,1225,1226,1228],{"class":337,"line":338},[335,1227,342],{"class":341},[335,1229,1230],{"class":345}," \u002Fetc\u002Fvarnish\u002Fdefault.vcl\n",[15,1232,1233],{},"On retrouve la configuration de Varnish avec le langage VCL :",[326,1235,1237],{"className":328,"code":1236,"language":330,"meta":177,"style":177},"# This is a basic VCL configuration file for varnish.  See the vcl(7)\n# man page for details on VCL syntax and semantics.\n#\n# Default backend definition.  Set this to point to your content\n# server.\n#\nbackend owncloud {\n    .host = \"192.168.1.2\";\n    .port = \"80\";\n}\nbackend diaspora {\n    .host = \"192.168.1.3\";\n    .port = \"8080\";\n}\nsub vcl_recv {\n        if(req.http.host == \"owncloud.kassianoff.fr\"){\n                   set req.backend = owncloud;\n        }\n        if(req.http.host == \"diaspora.kassianoff.fr\"){\n                   set req.backend = diaspora;\n        }\n\n#if(req.http.authorization || req.request == \"POST\" || req.http.cookie){\n#                   return(pass);\n#        }\n\n        return(pipe);\n",[332,1238,1239,1244,1249,1253,1258,1263,1267,1278,1296,1312,1317,1326,1341,1356,1360,1370,1388,1403,1408,1427,1439,1443,1447,1452,1457,1462,1466],{"__ignoreMap":177},[335,1240,1241],{"class":337,"line":338},[335,1242,1243],{"class":514},"# This is a basic VCL configuration file for varnish.  See the vcl(7)\n",[335,1245,1246],{"class":337,"line":518},[335,1247,1248],{"class":514},"# man page for details on VCL syntax and semantics.\n",[335,1250,1251],{"class":337,"line":524},[335,1252,1073],{"class":514},[335,1254,1255],{"class":337,"line":530},[335,1256,1257],{"class":514},"# Default backend definition.  Set this to point to your content\n",[335,1259,1260],{"class":337,"line":537},[335,1261,1262],{"class":514},"# server.\n",[335,1264,1265],{"class":337,"line":543},[335,1266,1073],{"class":514},[335,1268,1269,1272,1275],{"class":337,"line":549},[335,1270,1271],{"class":341},"backend",[335,1273,1274],{"class":345}," owncloud",[335,1276,1277],{"class":345}," {\n",[335,1279,1280,1283,1286,1288,1291,1293],{"class":337,"line":554},[335,1281,1282],{"class":341},"    .host",[335,1284,1285],{"class":345}," =",[335,1287,687],{"class":407},[335,1289,1290],{"class":345},"192.168.1.2",[335,1292,1182],{"class":407},[335,1294,1295],{"class":407},";\n",[335,1297,1298,1301,1303,1305,1308,1310],{"class":337,"line":569},[335,1299,1300],{"class":341},"    .port",[335,1302,1285],{"class":345},[335,1304,687],{"class":407},[335,1306,1307],{"class":345},"80",[335,1309,1182],{"class":407},[335,1311,1295],{"class":407},[335,1313,1314],{"class":337,"line":582},[335,1315,1316],{"class":472},"}\n",[335,1318,1319,1321,1324],{"class":337,"line":588},[335,1320,1271],{"class":341},[335,1322,1323],{"class":345}," diaspora",[335,1325,1277],{"class":345},[335,1327,1328,1330,1332,1334,1337,1339],{"class":337,"line":593},[335,1329,1282],{"class":341},[335,1331,1285],{"class":345},[335,1333,687],{"class":407},[335,1335,1336],{"class":345},"192.168.1.3",[335,1338,1182],{"class":407},[335,1340,1295],{"class":407},[335,1342,1343,1345,1347,1349,1352,1354],{"class":337,"line":599},[335,1344,1300],{"class":341},[335,1346,1285],{"class":345},[335,1348,687],{"class":407},[335,1350,1351],{"class":345},"8080",[335,1353,1182],{"class":407},[335,1355,1295],{"class":407},[335,1357,1358],{"class":337,"line":605},[335,1359,1316],{"class":472},[335,1361,1362,1365,1368],{"class":337,"line":611},[335,1363,1364],{"class":341},"sub",[335,1366,1367],{"class":345}," vcl_recv",[335,1369,1277],{"class":345},[335,1371,1372,1375,1378,1380,1383,1385],{"class":337,"line":617},[335,1373,1374],{"class":341},"        if(req.http.host",[335,1376,1377],{"class":345}," ==",[335,1379,687],{"class":407},[335,1381,1382],{"class":345},"owncloud.kassianoff.fr",[335,1384,1182],{"class":407},[335,1386,1387],{"class":472},"){\n",[335,1389,1390,1394,1397,1399,1401],{"class":337,"line":623},[335,1391,1393],{"class":1392},"s2Zo4","                   set",[335,1395,1396],{"class":345}," req.backend",[335,1398,1285],{"class":345},[335,1400,1274],{"class":345},[335,1402,1295],{"class":407},[335,1404,1405],{"class":337,"line":633},[335,1406,1407],{"class":472},"        }\n",[335,1409,1410,1413,1416,1418,1420,1423,1425],{"class":337,"line":638},[335,1411,1412],{"class":472},"        if(",[335,1414,1415],{"class":341},"req.http.host",[335,1417,1377],{"class":345},[335,1419,687],{"class":407},[335,1421,1422],{"class":345},"diaspora.kassianoff.fr",[335,1424,1182],{"class":407},[335,1426,1387],{"class":472},[335,1428,1429,1431,1433,1435,1437],{"class":337,"line":644},[335,1430,1393],{"class":1392},[335,1432,1396],{"class":345},[335,1434,1285],{"class":345},[335,1436,1323],{"class":345},[335,1438,1295],{"class":407},[335,1440,1441],{"class":337,"line":653},[335,1442,1407],{"class":472},[335,1444,1445],{"class":337,"line":658},[335,1446,534],{"emptyLinePlaceholder":533},[335,1448,1449],{"class":337,"line":664},[335,1450,1451],{"class":514},"#if(req.http.authorization || req.request == \"POST\" || req.http.cookie){\n",[335,1453,1454],{"class":337,"line":670},[335,1455,1456],{"class":514},"#                   return(pass);\n",[335,1458,1459],{"class":337,"line":675},[335,1460,1461],{"class":514},"#        }\n",[335,1463,1464],{"class":337,"line":681},[335,1465,534],{"emptyLinePlaceholder":533},[335,1467,1468,1472,1475,1478,1481],{"class":337,"line":695},[335,1469,1471],{"class":1470},"s7zQu","        return",[335,1473,1474],{"class":472},"(",[335,1476,1477],{"class":345},"pipe",[335,1479,1480],{"class":472},")",[335,1482,1295],{"class":407},[15,1484,1485,1486,1489,1490,1493,1494,909,1497,1499,1500,159,1503,1506,1507,1509,1510,1513],{},"Ajouter les deux « ",[21,1487,1488],{},"Backend"," » avec un nom distinct pour chacun d’entre eux et insérer « ",[21,1491,1492],{},"host"," » et « ",[21,1495,1496],{},"port",[42,1498],{},"\nLe port d’écoute du ",[21,1501,1502],{},"serveur WEB",[21,1504,1505],{},"diaspora"," a été modifié à titre de démonstration.",[42,1508],{},"\nLa condition « ",[21,1511,1512],{},"sub vcl_recv"," » permet de choisir en fonction de la requête le bon « Backend ».",[15,1515,1516],{},"La configuration de Varnish est terminée,  relancer le processus :",[326,1518,1520],{"className":328,"code":1519,"language":330,"meta":177,"style":177},"\u002Fetc\u002Finit.d\u002Fvarnish reload\n",[332,1521,1522],{"__ignoreMap":177},[335,1523,1524,1527],{"class":337,"line":338},[335,1525,1526],{"class":341},"\u002Fetc\u002Finit.d\u002Fvarnish",[335,1528,1529],{"class":345}," reload\n",[15,1531,1532,1533,1536,1537,1540,1541,40,1544,1546,1547,1550,1551,1554],{},"Une fois fait votre ",[21,1534,1535],{},"reverse proxy HTTPS"," et le ",[21,1538,1539],{},"cache Varnish"," doivent être ",[21,1542,1543],{},"fonctionnels",[42,1545],{},"\nComme le montre la ",[21,1548,1549],{},"capture de Firefox"," (",[21,1552,1553],{},"outils développeur web",") sur un de mes sous-domaine :",[15,1556,1557],{},[175,1558],{"alt":177,"src":1559},"\u002Fimages\u002Fblog\u002Finstallation-des-proxy-inverses-pound-varnish\u002Fd253f91978.png",[15,1561,1562,1563,1565],{},"Sous ownCloud plusieurs problèmes peuvent survenir, notamment avec le partage de fichier.",[42,1564],{},"\nDans le « vhost » de votre serveur web ownCloud ajouter :",[326,1567,1569],{"className":328,"code":1568,"language":330,"meta":177,"style":177},"RequestHeader add X-Forwarded-Proto https\n",[332,1570,1571],{"__ignoreMap":177},[335,1572,1573,1576,1579,1582],{"class":337,"line":338},[335,1574,1575],{"class":341},"RequestHeader",[335,1577,1578],{"class":345}," add",[335,1580,1581],{"class":345}," X-Forwarded-Proto",[335,1583,1584],{"class":345}," https\n",[15,1586,1587,1588],{},"Activez le mode « headers » avec Apache2 ",[1589,1590,1591],"em",{},":",[326,1593,1595],{"className":328,"code":1594,"language":330,"meta":177,"style":177},"a2enmod headers\n",[332,1596,1597],{"__ignoreMap":177},[335,1598,1599,1602],{"class":337,"line":338},[335,1600,1601],{"class":341},"a2enmod",[335,1603,1604],{"class":345}," headers\n",[15,1606,1607],{},"L’initiation à Pound et Varnish est terminée, je vous encourage à continuer l’apprentissage de Varnish.",[10,1609,1611],{"id":1610},"conclusion","Conclusion",[15,1613,1614],{},"J'ai présenté ici la mise en place conjointe de Pound et Varnish sur un même serveur Debian 7 : Pound assure la terminaison HTTPS et la répartition de charge, tandis que Varnish gère le cache des requêtes HTTP vers les backends OwnCloud et Diaspora. Cette architecture permet de sécuriser l'accès public tout en accélérant les temps de réponse grâce à la mise en cache. Elle constitue une base solide pour qui souhaite héberger plusieurs services derrière un reverse proxy performant.",[1616,1617,1618],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}",{"title":177,"searchDepth":518,"depth":518,"links":1620},[1621,1622,1626,1627,1628,1629,1630],{"id":12,"depth":518,"text":13},{"id":108,"depth":518,"text":109,"children":1623},[1624,1625],{"id":170,"depth":524,"text":171},{"id":181,"depth":524,"text":182},{"id":300,"depth":518,"text":301},{"id":437,"depth":518,"text":438},{"id":995,"depth":518,"text":996},{"id":1024,"depth":518,"text":1025},{"id":1610,"depth":518,"text":1611},null,"\u002Fimages\u002Fblog\u002Finstallation-des-proxy-inverses-pound-varnish\u002Fec4618d7ad.jpg","2013-12-31","Le must des proxy inverses Pound et Varnish! Ils permettent de sécuriser un peu plus vos serveurs. Accélérer vos requêtes, limiter le nombre de visiteurs.","md",{},"\u002Fblog\u002Finstallation-des-proxy-inverses-pound-varnish",{"title":5,"description":1634},"installation-des-proxy-inverses-pound-varnish","blog\u002Finstallation-des-proxy-inverses-pound-varnish","IMwhMDTpeYPLoR3CWY7FRuBbeACB8jeEz8ryJ-tAqqE",[1643,1649,1655,1661,1667,1675,1683,1691],{"title":1644,"path":1645,"stem":1646,"date":1647,"cover":1648,"categories":1631,"children":-1},"Installation de Plex Media Server sur Debian 8","\u002Fblog\u002Finstallation-plex-media-server-sur-debian","blog\u002Finstallation-plex-media-server-sur-debian","2014-01-29","\u002Fimages\u002Fblog\u002Finstallation-plex-media-server-sur-debian\u002Fea86a7e30d.png",{"title":1650,"path":1651,"stem":1652,"date":1653,"cover":1654,"categories":1631,"children":-1},"Installation de Splunk sur Debian 7","\u002Fblog\u002Finstallation-splunk-sur-debian","blog\u002Finstallation-splunk-sur-debian","2014-01-14","\u002Fimages\u002Fblog\u002Finstallation-splunk-sur-debian\u002Ff8405ad901.jpg",{"title":1656,"path":1657,"stem":1658,"date":1659,"cover":1660,"categories":1631,"children":-1},"Installation de Clipperz sur Debian 7","\u002Fblog\u002Finstallation-clipperz-sur-debian","blog\u002Finstallation-clipperz-sur-debian","2014-01-12","\u002Fimages\u002Fblog\u002Finstallation-clipperz-sur-debian\u002Fd61b13f064.png",{"title":1662,"path":1663,"stem":1664,"date":1665,"cover":1666,"categories":1631,"children":-1},"Installation de OpenVPN ALS Adito sur CentOS 6.5","\u002Fblog\u002Finstallation-openvpn-als-adito-sur-centos","blog\u002Finstallation-openvpn-als-adito-sur-centos","2014-01-05","\u002Fimages\u002Fblog\u002Finstallation-openvpn-als-adito-sur-centos\u002Fa500a01b28.png",{"title":1668,"path":1669,"stem":1670,"date":1671,"cover":1672,"categories":1673,"children":-1},"Mon utilisation du système propriétaire Windows 8.1","\u002Fblog\u002Fmon-utilisation-systeme-proprietaire-windows","blog\u002Fmon-utilisation-systeme-proprietaire-windows","2013-12-27","\u002Fimages\u002Fblog\u002Fmon-utilisation-systeme-proprietaire-windows\u002Fb36cbda2fc.jpg",[1674],"Microsoft",{"title":1676,"path":1677,"stem":1678,"date":1679,"cover":1680,"categories":1681,"children":-1},"Installer CyanogenMod 11 sur le Nexus 4","\u002Fblog\u002Finstaller-cyanogenmod-sur-nexus","blog\u002Finstaller-cyanogenmod-sur-nexus","2013-12-25","\u002Fimages\u002Fblog\u002Finstaller-cyanogenmod-sur-nexus\u002F83621431fb.png",[1682],"Google",{"title":1684,"path":1685,"stem":1686,"date":1687,"cover":1688,"categories":1689,"children":-1},"Pourquoi j’ai offert une Nexus 7 à Noël ?","\u002Fblog\u002Fpourquoi-offert-une-nexus-noel","blog\u002Fpourquoi-offert-une-nexus-noel","2013-12-22","\u002Fimages\u002Fblog\u002Fpourquoi-offert-une-nexus-noel\u002F10df2223a3.jpg",[1690],"Évènement",{"title":1692,"path":1693,"stem":1694,"date":1695,"cover":1696,"categories":1697,"children":-1},"Brocade absorbe Vyatta : le spécialiste SDN","\u002Fblog\u002Fbrocade-absorbe-vyatta-specialiste-sdn","blog\u002Fbrocade-absorbe-vyatta-specialiste-sdn","2013-12-14","\u002Fimages\u002Fblog\u002Fbrocade-absorbe-vyatta-specialiste-sdn\u002Fa44b82e35f.jpg",[1690],[],1786644880072]