{"id":23,"date":"2013-01-15T18:27:22","date_gmt":"2013-01-15T17:27:22","guid":{"rendered":"http:\/\/starhackademy.net\/?p=23"},"modified":"2020-09-14T13:08:20","modified_gmt":"2020-09-14T11:08:20","slug":"reverse-proxy-for-high-trafic-website","status":"publish","type":"post","link":"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/","title":{"rendered":"Reverse proxy for high trafic website"},"content":{"rendered":"<p>As previously explained, I had as part of a customer&#8217;s mission to propose a solution to accelerate a web site. The challenge was to replace an aging Juniper appliance by a reverse proxy for high trafic website. This appliance was accelerating the traffic by caching data (max. 100Mb), and balancing the traffic between 4 front end servers. I also wanted to reorganize the whole DMZ infrastructure to improve the security. The existing architecture had all servers (front-ends, database and application servers) in the same LAN behind the firewall and the Junipers (see HLD image for As-Is solution below).<\/p>\n<div style=\"width: 585px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/starhackademy.net\/wp-content\/uploads\/2013\/01\/20130120-230359.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/starhackademy.net\/wp-content\/uploads\/2013\/01\/20130120-230359.jpg\" alt=\"As-Is solution\" width=\"575\" height=\"339\"\/><\/a><p class=\"wp-caption-text\">As-is solution<\/p><\/div>\n<p>Don&#8217;t laugh, those websites receive more than 45.000.000 visits per month, with more than 4 pages seen at each visit (in normal traffic) and expect to receive more than 100.000.000 visits a month on special occasions. So, to improve this, I decided for a classical layered system (see HLD To-be solution below).<!--more--><\/p>\n<div style=\"width: 576px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/starhackademy.net\/wp-content\/uploads\/2013\/01\/20130120-231515.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"https:\/\/starhackademy.net\/wp-content\/uploads\/2013\/01\/20130120-231515.jpg\" alt=\"HLD To-be solution\" width=\"566\" height=\"334\"\/><\/a><p class=\"wp-caption-text\">HLD To-be solution<\/p><\/div>\n<p>Once the design for this reverse proxy for high trafic website was accepted, the evaluation process for the acceleration platform began.<br \/>\nWhile working on the different platforms possible for this project, I thought that it would be better to be ready to give access to other protocols than http to Frontends servers zone.<\/p>\n<p>My credo in consulting is to be solution minded, instead of product minded. This means that each time I have to propose a new solution, I&#8217;ll make a survey of existing solutions, test them, and verify how they can&nbsp;fulfil&nbsp;the mission assigned. I will always promote the solutions with the shortest learning curve (taking in account the knowledge and sensibility of the existing IT team), and in this case, if possible using open source products. (This is opposed to the product mind that will propose the product he knows the best, or where he&#8217;s got the better margin). One drawback to this, is that the time to design a proposed solution is longer (due to tests and probable learnings), but the solution is generally more accurate to the needs of the customer.<\/p>\n<p>In this case, I had to find a good reverse caching proxy for HTTP and a load balancer for the other protocols (and if possible in open source products). I did start from a white page and began by looking for a product able to fulfill both roles. Believe it or not, I couldn&#8217;t find a distro dedicated to this role. So, I started evaluating different &#8220;reverse proxy&#8221; solutions:<\/p>\n<ul>\n<li><a href=\"https:\/\/httpd.apache.org\/\">apache<\/a> with mod_proxy and mod_proxy_balancer<\/li>\n<li><a href=\"https:\/\/nginx.org\/en\/\">nginx<\/a> as a reverse proxy<\/li>\n<li><a href=\"https:\/\/www.apsis.ch\/pound.html\">Pound<\/a><\/li>\n<li><a href=\"http:\/\/www.squid-cache.org\">Squid<\/a> as a reverse proxy<\/li>\n<li>and&nbsp;<a href=\"https:\/\/varnish-cache.org\/\"><strong>Varnish<\/strong><\/a><\/li>\n<\/ul>\n<p>And after that evaluate the best solution to load balance traffic other than HTTP.<\/p>\n<p style=\"text-align: right;\"><em>To be continued&#8230;<\/em><\/p>\n<p style=\"text-align: left;\"><span style=\"font-size: xx-small;\">This article was entirely written with my iPad, and the drawings were &#8220;deigned&#8221; with QuickDiag app.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As previously explained, I had as part of a customer&#8217;s mission to propose a solution to accelerate a web site. The challenge was to replace an aging Juniper appliance by a reverse proxy for high trafic website. This appliance was accelerating the traffic by caching data (max. 100Mb), and balancing the traffic between 4 front [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false,"jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[23],"tags":[11,14,12,13,10,9,3],"jetpack_publicize_connections":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Reverse proxy for high trafic website - Star Hackademy<\/title>\n<meta name=\"description\" content=\"Reverse proxy for high trafic website in HTTP + load balancer for other protocols (open source products). High Level Design.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reverse proxy for high trafic website - Star Hackademy\" \/>\n<meta property=\"og:description\" content=\"Reverse proxy for high trafic website in HTTP + load balancer for other protocols (open source products). High Level Design.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/\" \/>\n<meta property=\"og:site_name\" content=\"Star Hackademy\" \/>\n<meta property=\"article:published_time\" content=\"2013-01-15T17:27:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-14T11:08:20+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/starhackademy.net\/wp-content\/uploads\/2013\/01\/20130120-230359.jpg\" \/>\n<meta name=\"author\" content=\"pfuks\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"pfuks\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/\"},\"author\":{\"name\":\"pfuks\",\"@id\":\"https:\/\/starhackademy.net\/#\/schema\/person\/0ea9aadbf70dfd29540089c28eaceca3\"},\"headline\":\"Reverse proxy for high trafic website\",\"datePublished\":\"2013-01-15T17:27:22+00:00\",\"dateModified\":\"2020-09-14T11:08:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/\"},\"wordCount\":486,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/starhackademy.net\/#\/schema\/person\/0ea9aadbf70dfd29540089c28eaceca3\"},\"keywords\":[\"acceleration\",\"balance\",\"load\",\"load balance\",\"proxy\",\"Reverse proxy\",\"Varnish\"],\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/\",\"url\":\"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/\",\"name\":\"Reverse proxy for high trafic website - Star Hackademy\",\"isPartOf\":{\"@id\":\"https:\/\/starhackademy.net\/#website\"},\"datePublished\":\"2013-01-15T17:27:22+00:00\",\"dateModified\":\"2020-09-14T11:08:20+00:00\",\"description\":\"Reverse proxy for high trafic website in HTTP + load balancer for other protocols (open source products). High Level Design.\",\"breadcrumb\":{\"@id\":\"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/starhackademy.net\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reverse proxy for high trafic website\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/starhackademy.net\/#website\",\"url\":\"https:\/\/starhackademy.net\/\",\"name\":\"Star Hackademy\",\"description\":\"Hacking and configuring, IT&#039;s a long and secret story...\",\"publisher\":{\"@id\":\"https:\/\/starhackademy.net\/#\/schema\/person\/0ea9aadbf70dfd29540089c28eaceca3\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/starhackademy.net\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/starhackademy.net\/#\/schema\/person\/0ea9aadbf70dfd29540089c28eaceca3\",\"name\":\"pfuks\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/starhackademy.net\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/starhackademy.net\/wp-content\/uploads\/2020\/06\/caricature-small.png\",\"contentUrl\":\"https:\/\/starhackademy.net\/wp-content\/uploads\/2020\/06\/caricature-small.png\",\"width\":640,\"height\":676,\"caption\":\"pfuks\"},\"logo\":{\"@id\":\"https:\/\/starhackademy.net\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Reverse proxy for high trafic website - Star Hackademy","description":"Reverse proxy for high trafic website in HTTP + load balancer for other protocols (open source products). High Level Design.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/","og_locale":"en_GB","og_type":"article","og_title":"Reverse proxy for high trafic website - Star Hackademy","og_description":"Reverse proxy for high trafic website in HTTP + load balancer for other protocols (open source products). High Level Design.","og_url":"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/","og_site_name":"Star Hackademy","article_published_time":"2013-01-15T17:27:22+00:00","article_modified_time":"2020-09-14T11:08:20+00:00","og_image":[{"url":"http:\/\/starhackademy.net\/wp-content\/uploads\/2013\/01\/20130120-230359.jpg"}],"author":"pfuks","twitter_card":"summary_large_image","twitter_misc":{"Written by":"pfuks","Estimated reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/#article","isPartOf":{"@id":"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/"},"author":{"name":"pfuks","@id":"https:\/\/starhackademy.net\/#\/schema\/person\/0ea9aadbf70dfd29540089c28eaceca3"},"headline":"Reverse proxy for high trafic website","datePublished":"2013-01-15T17:27:22+00:00","dateModified":"2020-09-14T11:08:20+00:00","mainEntityOfPage":{"@id":"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/"},"wordCount":486,"commentCount":2,"publisher":{"@id":"https:\/\/starhackademy.net\/#\/schema\/person\/0ea9aadbf70dfd29540089c28eaceca3"},"keywords":["acceleration","balance","load","load balance","proxy","Reverse proxy","Varnish"],"articleSection":["DevOps"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/","url":"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/","name":"Reverse proxy for high trafic website - Star Hackademy","isPartOf":{"@id":"https:\/\/starhackademy.net\/#website"},"datePublished":"2013-01-15T17:27:22+00:00","dateModified":"2020-09-14T11:08:20+00:00","description":"Reverse proxy for high trafic website in HTTP + load balancer for other protocols (open source products). High Level Design.","breadcrumb":{"@id":"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/starhackademy.net\/index.php\/2013\/01\/15\/reverse-proxy-for-high-trafic-website\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/starhackademy.net\/"},{"@type":"ListItem","position":2,"name":"Reverse proxy for high trafic website"}]},{"@type":"WebSite","@id":"https:\/\/starhackademy.net\/#website","url":"https:\/\/starhackademy.net\/","name":"Star Hackademy","description":"Hacking and configuring, IT&#039;s a long and secret story...","publisher":{"@id":"https:\/\/starhackademy.net\/#\/schema\/person\/0ea9aadbf70dfd29540089c28eaceca3"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/starhackademy.net\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/starhackademy.net\/#\/schema\/person\/0ea9aadbf70dfd29540089c28eaceca3","name":"pfuks","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/starhackademy.net\/#\/schema\/person\/image\/","url":"https:\/\/starhackademy.net\/wp-content\/uploads\/2020\/06\/caricature-small.png","contentUrl":"https:\/\/starhackademy.net\/wp-content\/uploads\/2020\/06\/caricature-small.png","width":640,"height":676,"caption":"pfuks"},"logo":{"@id":"https:\/\/starhackademy.net\/#\/schema\/person\/image\/"}}]}},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p32Xjl-n","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/starhackademy.net\/index.php\/wp-json\/wp\/v2\/posts\/23"}],"collection":[{"href":"https:\/\/starhackademy.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/starhackademy.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/starhackademy.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/starhackademy.net\/index.php\/wp-json\/wp\/v2\/comments?post=23"}],"version-history":[{"count":19,"href":"https:\/\/starhackademy.net\/index.php\/wp-json\/wp\/v2\/posts\/23\/revisions"}],"predecessor-version":[{"id":142,"href":"https:\/\/starhackademy.net\/index.php\/wp-json\/wp\/v2\/posts\/23\/revisions\/142"}],"wp:attachment":[{"href":"https:\/\/starhackademy.net\/index.php\/wp-json\/wp\/v2\/media?parent=23"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/starhackademy.net\/index.php\/wp-json\/wp\/v2\/categories?post=23"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/starhackademy.net\/index.php\/wp-json\/wp\/v2\/tags?post=23"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}