{"id":48892,"date":"2020-05-13T05:02:55","date_gmt":"2020-05-13T03:02:55","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=48892"},"modified":"2020-05-13T05:02:55","modified_gmt":"2020-05-13T03:02:55","slug":"caddy-the-ultimate-server-with-automatic-https","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/","title":{"rendered":"Caddy &#8211; The Ultimate Server with Automatic HTTPS"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>Great things are easy to get used to.\u00a0 When something works the way you want it, and does so for a long a time, it is inevitable that one day you&#8217;ll stop thinking about it altogether and accept it as a given.<\/p>\n<p>Apache was a great web server, until Nginx came along.\u00a0 All of a sudden, it became obvious how much faster things could be, and how much simpler the configuration file is possible.<\/p>\n<p>For the last few years, Nginx was working great for me.\u00a0 And now that I came across <a href=\"https:\/\/caddyserver.com\/\">Caddy<\/a>, I realized that life can be a lot simpler.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2020\/05\/caddy.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"48898\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/caddy\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2020\/05\/caddy.png?fit=682%2C399&amp;ssl=1\" data-orig-size=\"682,399\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Caddy web server\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2020\/05\/caddy.png?fit=660%2C386&amp;ssl=1\" class=\"aligncenter size-medium wp-image-48898\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2020\/05\/caddy-500x293.png?resize=500%2C293&#038;ssl=1\" alt=\"Caddy web server\" width=\"500\" height=\"293\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2020\/05\/caddy.png?resize=500%2C293&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2020\/05\/caddy.png?w=682&amp;ssl=1 682w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>Here&#8217;s a bit to get you started:<\/p>\n<blockquote><p>Caddy simplifies your infrastructure. It takes care of TLS certificate renewals, OCSP stapling, static file serving, reverse proxying, Kubernetes ingress, and more.<\/p>\n<p>Its modular architecture means you can do more with a single, static binary that compiles for any platform.<\/p>\n<p>Caddy runs great in containers because it has no dependencies\u2014not even libc. Run Caddy practically anywhere.<\/p><\/blockquote>\n<p>Seriously? We now have a web server which handles HTTPS with automatically renewed certificates (yes, Let&#8217;s Encrypt) out of the box&#8230; Mind-blowing.\u00a0 I guess, 21st century is indeed here now.<\/p>\n<p>What else is there?\u00a0 Well, let&#8217;s see:<\/p>\n<ul>\n<li>Configurable via RESTful JSON API. OMG!\u00a0 No more trickery with include files, syntax checking and restarts.\u00a0 In fact, configuration files are completely optional, and even if you choose to use them, they just use the same API under the hood.\u00a0 Bonus point: you can export full configuration of a running server into a file via a simple API call.<\/li>\n<li>Extensible.\u00a0 Yes, that&#8217;s right!\u00a0 &#8220;<em>Caddy can embed any Go application as a plugin, and has first-class support for plugins of plugins.<\/em>&#8221;\u00a0 Check out their <a href=\"https:\/\/caddy.community\/c\/plugins\">forum for plugin-related discussions<\/a>, or simply <a href=\"https:\/\/github.com\/search?p=9&amp;q=caddy&amp;type=Repositories\">search GitHub for Caddy<\/a>.<\/li>\n<li>Supports HTTP\/1.1, HTTP\/2, and even HTTP\/3 (ETF-standard-draft version of QUIC), WebSocket, and FastCGI.<\/li>\n<li>&#8230; and a lot more.<\/li>\n<\/ul>\n<p>Wow!\u00a0 It&#8217;s definitely worth checking out.\u00a0 While Nginx is not going to disappear (much like Apache being still around), Caddy might be a better option for your next project.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Great things are easy to get used to.\u00a0 When something works the way you want it, and does so for a long a time, it is inevitable that one day you&#8217;ll stop thinking about it altogether and accept it as a given. Apache was a great web server, until Nginx came along.\u00a0 All of a &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Caddy &#8211; The Ultimate Server with Automatic HTTPS<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,18,133,62,1334],"tags":[3718,3225,3427,3413,1330],"keyring_services":[],"class_list":["post-48892","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-sysadmin","category-technology","category-web-work","tag-caddy","tag-http","tag-lets-encrypt","tag-ssl","tag-web-development"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"Great things are easy to get used to. When something works the way you want it, and does so for a long a time, it is inevitable that one day you&#039;ll stop thinking about it altogether and accept it as a given. Apache was a great web server, until Nginx came along. All of a\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Caddy \u2013 The Ultimate Server with Automatic HTTPS - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"Great things are easy to get used to. When something works the way you want it, and does so for a long a time, it is inevitable that one day you&#039;ll stop thinking about it altogether and accept it as a given. Apache was a great web server, until Nginx came along. All of a\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-13T03:02:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-13T03:02:55+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Caddy \u2013 The Ultimate Server with Automatic HTTPS - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Great things are easy to get used to. When something works the way you want it, and does so for a long a time, it is inevitable that one day you&#039;ll stop thinking about it altogether and accept it as a given. Apache was a great web server, until Nginx came along. All of a\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2020\\\/05\\\/13\\\/caddy-the-ultimate-server-with-automatic-https\\\/#blogposting\",\"name\":\"Caddy \\u2013 The Ultimate Server with Automatic HTTPS - Leonid Mamchenkov\",\"headline\":\"Caddy &#8211; The Ultimate Server with Automatic HTTPS\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/wp-content\\\/uploads\\\/2020\\\/05\\\/caddy-500x293.png\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2020\\\/05\\\/13\\\/caddy-the-ultimate-server-with-automatic-https\\\/#articleImage\"},\"datePublished\":\"2020-05-13T05:02:55+02:00\",\"dateModified\":\"2020-05-13T05:02:55+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2020\\\/05\\\/13\\\/caddy-the-ultimate-server-with-automatic-https\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2020\\\/05\\\/13\\\/caddy-the-ultimate-server-with-automatic-https\\\/#webpage\"},\"articleSection\":\"All, Programming, Sysadmin, Technology, Web work, Caddy, HTTP, Let's Encrypt, SSL, web development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2020\\\/05\\\/13\\\/caddy-the-ultimate-server-with-automatic-https\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"position\":3,\"name\":\"Programming\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2020\\\/05\\\/13\\\/caddy-the-ultimate-server-with-automatic-https\\\/#listItem\",\"name\":\"Caddy &#8211; The Ultimate Server with Automatic HTTPS\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2020\\\/05\\\/13\\\/caddy-the-ultimate-server-with-automatic-https\\\/#listItem\",\"position\":4,\"name\":\"Caddy &#8211; The Ultimate Server with Automatic HTTPS\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2020\\\/05\\\/13\\\/caddy-the-ultimate-server-with-automatic-https\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2020\\\/05\\\/13\\\/caddy-the-ultimate-server-with-automatic-https\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2020\\\/05\\\/13\\\/caddy-the-ultimate-server-with-automatic-https\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2020\\\/05\\\/13\\\/caddy-the-ultimate-server-with-automatic-https\\\/\",\"name\":\"Caddy \\u2013 The Ultimate Server with Automatic HTTPS - Leonid Mamchenkov\",\"description\":\"Great things are easy to get used to. When something works the way you want it, and does so for a long a time, it is inevitable that one day you'll stop thinking about it altogether and accept it as a given. Apache was a great web server, until Nginx came along. All of a\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2020\\\/05\\\/13\\\/caddy-the-ultimate-server-with-automatic-https\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2020-05-13T05:02:55+02:00\",\"dateModified\":\"2020-05-13T05:02:55+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Caddy \u2013 The Ultimate Server with Automatic HTTPS - Leonid Mamchenkov","description":"Great things are easy to get used to. When something works the way you want it, and does so for a long a time, it is inevitable that one day you'll stop thinking about it altogether and accept it as a given. Apache was a great web server, until Nginx came along. All of a","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/#blogposting","name":"Caddy \u2013 The Ultimate Server with Automatic HTTPS - Leonid Mamchenkov","headline":"Caddy &#8211; The Ultimate Server with Automatic HTTPS","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2020\/05\/caddy-500x293.png","@id":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/#articleImage"},"datePublished":"2020-05-13T05:02:55+02:00","dateModified":"2020-05-13T05:02:55+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/#webpage"},"articleSection":"All, Programming, Sysadmin, Technology, Web work, Caddy, HTTP, Let's Encrypt, SSL, web development"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","position":3,"name":"Programming","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/#listItem","name":"Caddy &#8211; The Ultimate Server with Automatic HTTPS"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/#listItem","position":4,"name":"Caddy &#8211; The Ultimate Server with Automatic HTTPS","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/","name":"Caddy \u2013 The Ultimate Server with Automatic HTTPS - Leonid Mamchenkov","description":"Great things are easy to get used to. When something works the way you want it, and does so for a long a time, it is inevitable that one day you'll stop thinking about it altogether and accept it as a given. Apache was a great web server, until Nginx came along. All of a","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2020-05-13T05:02:55+02:00","dateModified":"2020-05-13T05:02:55+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"Caddy \u2013 The Ultimate Server with Automatic HTTPS - Leonid Mamchenkov","og:description":"Great things are easy to get used to. When something works the way you want it, and does so for a long a time, it is inevitable that one day you'll stop thinking about it altogether and accept it as a given. Apache was a great web server, until Nginx came along. All of a","og:url":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2020-05-13T03:02:55+00:00","article:modified_time":"2020-05-13T03:02:55+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"Caddy \u2013 The Ultimate Server with Automatic HTTPS - Leonid Mamchenkov","twitter:description":"Great things are easy to get used to. When something works the way you want it, and does so for a long a time, it is inevitable that one day you'll stop thinking about it altogether and accept it as a given. Apache was a great web server, until Nginx came along. All of a","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"48892","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-19 09:00:02","updated":"2026-01-15 14:22:44","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/\" title=\"Programming\">Programming<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tCaddy \u2013 The Ultimate Server with Automatic HTTPS\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Programming","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/"},{"label":"Caddy &#8211; The Ultimate Server with Automatic HTTPS","link":"https:\/\/mamchenkov.net\/wordpress\/2020\/05\/13\/caddy-the-ultimate-server-with-automatic-https\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":22700,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/10\/22\/url-rewriting-in-built-in-web-server-of-php\/","url_meta":{"origin":48892,"position":0},"title":"URL rewriting in built-in web server of PHP","author":"Leonid Mamchenkov","date":"October 22, 2014","format":false,"excerpt":"PHP comes with a handy for development built-in web server. \u00a0However, most web projects have friendly URLs these days which are either Apache (mod_rewrite) or Nginx specific configuration. \u00a0This almost renders built-in PHP web server useless. \u00a0Unless you provide a PHP-based routing, like so: Start the PHP web server with\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28406,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/02\/21\/nginx-1-13-9-and-http-2-server-push\/","url_meta":{"origin":48892,"position":1},"title":"Nginx 1.13.9 and HTTP\/2 Server Push","author":"Leonid Mamchenkov","date":"February 21, 2018","format":false,"excerpt":"Here are some very exciting news from the Nginx front lines: HTTP\/2 Server Push is now available in the latest and greatest Nginx 1.13.9, which was released yesterday! Server Push was one of the most exciting features for me in all of the HTTP\/2 specification.\u00a0 But I wasn't quite sure\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/02\/nginx-push-500x304.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27972,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/08\/nginx-unit\/","url_meta":{"origin":48892,"position":2},"title":"Nginx Unit","author":"Leonid Mamchenkov","date":"September 8, 2017","format":false,"excerpt":"\u00a0 Nginx Unit looks interesting: What is NGINX Unit? NGINX Unit is a new, lightweight, open source application server built to meet the demands of today\u2019s dynamic and distributed applications. Deploy configuration changes with no service disruptions. Run code in multiple languages. Build the foundation of your service mesh. An\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/09\/nginx-unit-500x336.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":21405,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/03\/27\/ngxtop-real-time-metrics-for-nginx-server\/","url_meta":{"origin":48892,"position":3},"title":"ngxtop &#8211; real-time metrics for nginx server","author":"Leonid Mamchenkov","date":"March 27, 2014","format":"link","excerpt":"ngxtop - real-time metrics for nginx server","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":34255,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/02\/15\/nginx-quick-reference\/","url_meta":{"origin":48892,"position":4},"title":"Nginx Quick Reference","author":"Leonid Mamchenkov","date":"February 15, 2019","format":false,"excerpt":"Nginx Quick Reference is an excellent summary of notes on tweaking the performance and security of the Nginx web server configuration.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/nginx-hardening-checklist.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/nginx-hardening-checklist.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/nginx-hardening-checklist.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/nginx-hardening-checklist.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/nginx-hardening-checklist.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/nginx-hardening-checklist.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":24603,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/08\/19\/custom-single-sign-on-with-nginx-and-auth-request-module\/","url_meta":{"origin":48892,"position":5},"title":"Custom Single Sign-On with Nginx and Auth Request Module","author":"Leonid Mamchenkov","date":"August 19, 2015","format":false,"excerpt":"In a recent project I crashed into a wall. \u00a0At least for a couple of days that is. \u00a0The requirement was to integrate the Request Tracker (aka RT) installation on CentOS 7 server with Nginx to\u00a0a client's company single sign-on solution. \u00a0Which wasn't LDAP. \u00a0Or Active Directory. \u00a0Or anything standard\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/48892","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=48892"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/48892\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=48892"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=48892"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=48892"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=48892"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}