{"id":1009,"date":"2017-12-07T14:33:44","date_gmt":"2017-12-07T19:33:44","guid":{"rendered":"https:\/\/portfolios.cs.earlham.edu\/?p=1009"},"modified":"2017-12-07T14:47:46","modified_gmt":"2017-12-07T19:47:46","slug":"bringing-innovative-load-balancing-to-nginx","status":"publish","type":"post","link":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/","title":{"rendered":"Bringing Innovative Load Balancing to NGINX"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-1011 aligncenter\" src=\"https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/me-300x300.jpg\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/me-300x300.jpg 300w, https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/me-150x150.jpg 150w, https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/me-60x60.jpg 60w, https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/me.jpg 404w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<h2>Senior Capstone: Bringing Innovative Load Balancing to NGINX<\/h3>\n<h3>Abstract<\/h3>\n<p>\nLoad balancing remains an important area of study in computer science largely due to the increasing demand on data centers and webservers. However, it is rare to see improvements in load balancing algorithms implemented outside of expensive specialized hardware. This research project is an attempt to bring these innovative techniques to NGINX, the industry leading open source load balancer and webserver. In addition to implementing a new, native NGINX module, I have developed a simple workflow to benchmark and compare the performance of available load balancing algorithms in any given production environment. My benchmarks indicate that it is possible to take advantage of more sophisticated load distribution techniques without paying a significant performance cost in additional overhead.\n<\/p>\n<figure>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1012\" src=\"https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/adam_schwartz_software_architecture.png\" alt=\"\" width=\"673\" height=\"514\" srcset=\"https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/adam_schwartz_software_architecture.png 673w, https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/adam_schwartz_software_architecture-300x229.png 300w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><figcaption style=\"text-align:center\"><b>My Software Architecture<b><\/b><\/figcaption><\/figure>\n<h2>Links<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/anschwa\/capstone\">Git Repository<\/a><\/li>\n<li><a href=\"https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/Adam_Schwartz_Bringing_Innovative_Load_Balancing_to_NGINX.pdf\">Research Paper<\/a><\/li>\n<li><a href=\"http:\/\/anschwa.com\/\">Website<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Senior Capstone: Bringing Innovative Load Balancing to NGINX Abstract Load balancing remains an important area of study in computer science largely due to the increasing demand on data centers and webservers. However, it is rare to see improvements in load &hellip; <a href=\"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/\">Read More<\/a><\/p>\n","protected":false},"author":25,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34],"tags":[],"class_list":["post-1009","post","type-post","status-publish","format-standard","hentry","category-adam-schwartz"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Bringing Innovative Load Balancing to NGINX - CS\/DS Student Portfolios<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bringing Innovative Load Balancing to NGINX - CS\/DS Student Portfolios\" \/>\n<meta property=\"og:description\" content=\"Senior Capstone: Bringing Innovative Load Balancing to NGINX Abstract Load balancing remains an important area of study in computer science largely due to the increasing demand on data centers and webservers. However, it is rare to see improvements in load &hellip; Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/\" \/>\n<meta property=\"og:site_name\" content=\"CS\/DS Student Portfolios\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-07T19:33:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-12-07T19:47:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/me.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"404\" \/>\n\t<meta property=\"og:image:height\" content=\"404\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Adam Schwartz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adam Schwartz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2017\\\/12\\\/07\\\/bringing-innovative-load-balancing-to-nginx\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2017\\\/12\\\/07\\\/bringing-innovative-load-balancing-to-nginx\\\/\"},\"author\":{\"name\":\"Adam Schwartz\",\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/#\\\/schema\\\/person\\\/2923267abc2193f74d08f85f0a13abad\"},\"headline\":\"Bringing Innovative Load Balancing to NGINX\",\"datePublished\":\"2017-12-07T19:33:44+00:00\",\"dateModified\":\"2017-12-07T19:47:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2017\\\/12\\\/07\\\/bringing-innovative-load-balancing-to-nginx\\\/\"},\"wordCount\":141,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2017\\\/12\\\/07\\\/bringing-innovative-load-balancing-to-nginx\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/me-300x300.jpg\",\"articleSection\":[\"Adam Schwartz\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2017\\\/12\\\/07\\\/bringing-innovative-load-balancing-to-nginx\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2017\\\/12\\\/07\\\/bringing-innovative-load-balancing-to-nginx\\\/\",\"url\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2017\\\/12\\\/07\\\/bringing-innovative-load-balancing-to-nginx\\\/\",\"name\":\"Bringing Innovative Load Balancing to NGINX - CS\\\/DS Student Portfolios\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2017\\\/12\\\/07\\\/bringing-innovative-load-balancing-to-nginx\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2017\\\/12\\\/07\\\/bringing-innovative-load-balancing-to-nginx\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/me-300x300.jpg\",\"datePublished\":\"2017-12-07T19:33:44+00:00\",\"dateModified\":\"2017-12-07T19:47:46+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/#\\\/schema\\\/person\\\/2923267abc2193f74d08f85f0a13abad\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2017\\\/12\\\/07\\\/bringing-innovative-load-balancing-to-nginx\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2017\\\/12\\\/07\\\/bringing-innovative-load-balancing-to-nginx\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2017\\\/12\\\/07\\\/bringing-innovative-load-balancing-to-nginx\\\/#primaryimage\",\"url\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/me.jpg\",\"contentUrl\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/me.jpg\",\"width\":404,\"height\":404},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/2017\\\/12\\\/07\\\/bringing-innovative-load-balancing-to-nginx\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bringing Innovative Load Balancing to NGINX\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/#website\",\"url\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/\",\"name\":\"CS\\\/DS Student Portfolios\",\"description\":\"AI and ML, Image Classification, Arduino\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/#\\\/schema\\\/person\\\/2923267abc2193f74d08f85f0a13abad\",\"name\":\"Adam Schwartz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0f2d316ab75ab3eeb0cde0bd4cc290230a3669c89eeb462b1049a89c34edc690?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0f2d316ab75ab3eeb0cde0bd4cc290230a3669c89eeb462b1049a89c34edc690?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0f2d316ab75ab3eeb0cde0bd4cc290230a3669c89eeb462b1049a89c34edc690?s=96&d=mm&r=g\",\"caption\":\"Adam Schwartz\"},\"url\":\"https:\\\/\\\/portfolios.cs.earlham.edu\\\/index.php\\\/author\\\/anschwa14\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bringing Innovative Load Balancing to NGINX - CS\/DS Student Portfolios","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:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/","og_locale":"en_US","og_type":"article","og_title":"Bringing Innovative Load Balancing to NGINX - CS\/DS Student Portfolios","og_description":"Senior Capstone: Bringing Innovative Load Balancing to NGINX Abstract Load balancing remains an important area of study in computer science largely due to the increasing demand on data centers and webservers. However, it is rare to see improvements in load &hellip; Read More","og_url":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/","og_site_name":"CS\/DS Student Portfolios","article_published_time":"2017-12-07T19:33:44+00:00","article_modified_time":"2017-12-07T19:47:46+00:00","og_image":[{"width":404,"height":404,"url":"https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/me.jpg","type":"image\/jpeg"}],"author":"Adam Schwartz","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Adam Schwartz","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/#article","isPartOf":{"@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/"},"author":{"name":"Adam Schwartz","@id":"https:\/\/portfolios.cs.earlham.edu\/#\/schema\/person\/2923267abc2193f74d08f85f0a13abad"},"headline":"Bringing Innovative Load Balancing to NGINX","datePublished":"2017-12-07T19:33:44+00:00","dateModified":"2017-12-07T19:47:46+00:00","mainEntityOfPage":{"@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/"},"wordCount":141,"commentCount":0,"image":{"@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/#primaryimage"},"thumbnailUrl":"https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/me-300x300.jpg","articleSection":["Adam Schwartz"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/","url":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/","name":"Bringing Innovative Load Balancing to NGINX - CS\/DS Student Portfolios","isPartOf":{"@id":"https:\/\/portfolios.cs.earlham.edu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/#primaryimage"},"image":{"@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/#primaryimage"},"thumbnailUrl":"https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/me-300x300.jpg","datePublished":"2017-12-07T19:33:44+00:00","dateModified":"2017-12-07T19:47:46+00:00","author":{"@id":"https:\/\/portfolios.cs.earlham.edu\/#\/schema\/person\/2923267abc2193f74d08f85f0a13abad"},"breadcrumb":{"@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/#primaryimage","url":"https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/me.jpg","contentUrl":"https:\/\/portfolios.cs.earlham.edu\/wp-content\/uploads\/2017\/12\/me.jpg","width":404,"height":404},{"@type":"BreadcrumbList","@id":"https:\/\/portfolios.cs.earlham.edu\/index.php\/2017\/12\/07\/bringing-innovative-load-balancing-to-nginx\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/portfolios.cs.earlham.edu\/"},{"@type":"ListItem","position":2,"name":"Bringing Innovative Load Balancing to NGINX"}]},{"@type":"WebSite","@id":"https:\/\/portfolios.cs.earlham.edu\/#website","url":"https:\/\/portfolios.cs.earlham.edu\/","name":"CS\/DS Student Portfolios","description":"AI and ML, Image Classification, Arduino","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/portfolios.cs.earlham.edu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/portfolios.cs.earlham.edu\/#\/schema\/person\/2923267abc2193f74d08f85f0a13abad","name":"Adam Schwartz","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0f2d316ab75ab3eeb0cde0bd4cc290230a3669c89eeb462b1049a89c34edc690?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0f2d316ab75ab3eeb0cde0bd4cc290230a3669c89eeb462b1049a89c34edc690?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0f2d316ab75ab3eeb0cde0bd4cc290230a3669c89eeb462b1049a89c34edc690?s=96&d=mm&r=g","caption":"Adam Schwartz"},"url":"https:\/\/portfolios.cs.earlham.edu\/index.php\/author\/anschwa14\/"}]}},"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"Adam Schwartz","author_link":"https:\/\/portfolios.cs.earlham.edu\/index.php\/author\/anschwa14\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/portfolios.cs.earlham.edu\/index.php\/category\/student\/2018\/adam-schwartz\/\" rel=\"category tag\">Adam Schwartz<\/a>","rttpg_excerpt":"Senior Capstone: Bringing Innovative Load Balancing to NGINX Abstract Load balancing remains an important area of study in computer science largely due to the increasing demand on data centers and webservers. However, it is rare to see improvements in load &hellip; Read More","_links":{"self":[{"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/posts\/1009","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/comments?post=1009"}],"version-history":[{"count":8,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/posts\/1009\/revisions"}],"predecessor-version":[{"id":1020,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/posts\/1009\/revisions\/1020"}],"wp:attachment":[{"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/media?parent=1009"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/categories?post=1009"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/portfolios.cs.earlham.edu\/index.php\/wp-json\/wp\/v2\/tags?post=1009"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}