{"id":82575,"date":"2026-03-18T12:35:22","date_gmt":"2026-03-18T16:35:22","guid":{"rendered":"https:\/\/www.inmotionhosting.com\/blog\/?p=82575"},"modified":"2026-03-17T12:44:03","modified_gmt":"2026-03-17T16:44:03","slug":"cdn-origin-server-optimization-dedicated","status":"publish","type":"post","link":"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/","title":{"rendered":"CDN Origin Server Optimization for Dedicated Infrastructure"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"538\" src=\"https:\/\/www.inmotionhosting.com\/blog\/wp-content\/uploads\/2026\/03\/Dedicated-Servers-for-Media-Production-Video-Rendering-1024x538.png\" alt=\"CDN Origin Server Optimization for Dedicated Infrastructure article\" class=\"wp-image-82576\" srcset=\"https:\/\/www.inmotionhosting.com\/blog\/wp-content\/uploads\/2026\/03\/Dedicated-Servers-for-Media-Production-Video-Rendering-1024x538.png 1024w, https:\/\/www.inmotionhosting.com\/blog\/wp-content\/uploads\/2026\/03\/Dedicated-Servers-for-Media-Production-Video-Rendering-300x158.png 300w, https:\/\/www.inmotionhosting.com\/blog\/wp-content\/uploads\/2026\/03\/Dedicated-Servers-for-Media-Production-Video-Rendering-768x403.png 768w, https:\/\/www.inmotionhosting.com\/blog\/wp-content\/uploads\/2026\/03\/Dedicated-Servers-for-Media-Production-Video-Rendering.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n<div class=\"wp-block-post-excerpt\"><p class=\"wp-block-post-excerpt__excerpt\">A CDN is only as fast as what it&#8217;s pulling from. When a CDN edge node needs to fetch an uncached asset from your dedicated server \u2014 a cache miss \u2014 the speed of that origin response determines how long the user waits. An origin server that responds in 50ms delivers a very different user&hellip; <\/p><\/div>\n\n\n<p>Optimizing <a href=\"https:\/\/www.inmotionhosting.com\/bare-metal-servers\">your dedicated server<\/a> as a CDN origin is a different discipline than optimizing it for direct user traffic. The CDN handles concurrency and geographic distribution; the origin needs to respond reliably to CDN pull requests with correct cache headers, compressed assets, and minimal time-to-first-byte.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How CDN Origin Requests Differ from Direct User Requests<\/strong><\/h2>\n\n\n\n<p>When CDN is deployed in front of your dedicated server, user traffic patterns change fundamentally:<\/p>\n\n\n\n<p><strong>Direct traffic (no CDN):<\/strong> Every user request hits your server. High concurrency means many simultaneous connections. Response time directly affects user experience.<\/p>\n\n\n\n<p><strong>CDN-proxied traffic:<\/strong> CDN edge nodes cache responses and serve them to users from geographic PoPs. Your origin sees CDN pull requests \u2014 mostly cache misses for new or expired content. Concurrency is lower but requests may be less predictable (cache expiry causes simultaneous pulls from multiple edge nodes).<\/p>\n\n\n\n<p><strong>Cache miss storms:<\/strong> When a high-traffic asset expires simultaneously across CDN nodes, multiple edge nodes request the same resource at once. An origin server that&#8217;s slow to respond causes cache misses to queue up, potentially serving stale content or failing requests during the refill window. <a href=\"https:\/\/developers.cloudflare.com\/cache\/how-to\/enable-tiered-cache\/\">Cloudflare calls this &#8220;origin shield&#8221;<\/a> \u2014 routing edge-to-origin traffic through a single intermediate node reduces the number of simultaneous origin pulls during cache refresh.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Nginx Configuration for CDN Origin Performance<\/strong><\/h2>\n\n\n\n<p>The Nginx configuration on your dedicated server needs different tuning for origin service versus direct user service.<\/p>\n\n\n\n<p><strong>Worker processes and connections:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># \/etc\/nginx\/nginx.conf\n\n# Match worker count to CPU cores\n\nworker_processes auto;\n\n# Increase for origin serving high-traffic CDN pulls\n\nevents {\n\n\u00a0\u00a0\u00a0\u00a0worker_connections 4096;\n\n\u00a0\u00a0\u00a0\u00a0use epoll;\n\n\u00a0\u00a0\u00a0\u00a0multi_accept on;\n\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\"># <\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\">etc<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\">nginx<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\">nginx.conf<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"># Match worker count to <\/span><span style=\"color: #79B8FF\">CPU<\/span><span style=\"color: #E1E4E8\"> cores<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">worker_processes auto;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"># Increase for origin serving high<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\">traffic <\/span><span style=\"color: #79B8FF\">CDN<\/span><span style=\"color: #E1E4E8\"> pulls<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">events {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0worker_connections <\/span><span style=\"color: #79B8FF\">4096<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0use epoll;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0multi_accept on;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Keepalive for CDN connections:<\/strong> CDN edge nodes make repeated requests to your origin. Keepalive connections eliminate TCP handshake overhead on each request:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>http {\n\n\u00a0\u00a0\u00a0\u00a0# Keep connections to CDN alive\n\n\u00a0\u00a0\u00a0\u00a0keepalive_timeout 120s;\n\n\u00a0\u00a0\u00a0\u00a0keepalive_requests 1000;\n\n\u00a0\u00a0\u00a0\u00a0upstream origin_backend {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0server 127.0.0.1:8080;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0keepalive 64;\u00a0 # Connection pool size\n\n\u00a0\u00a0\u00a0\u00a0}\n\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">http {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0# Keep connections to <\/span><span style=\"color: #79B8FF\">CDN<\/span><span style=\"color: #E1E4E8\"> alive<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0keepalive_timeout 120s;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0keepalive_requests <\/span><span style=\"color: #79B8FF\">1000<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0upstream origin_backend {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0server <\/span><span style=\"color: #79B8FF\">127.0<\/span><span style=\"color: #E1E4E8\">.<\/span><span style=\"color: #79B8FF\">0.1<\/span><span style=\"color: #E1E4E8\">:<\/span><span style=\"color: #79B8FF\">8080<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0keepalive <\/span><span style=\"color: #79B8FF\">64<\/span><span style=\"color: #E1E4E8\">;\u00a0 # Connection pool size<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>Gzip compression at origin:<\/strong> CDN nodes typically cache the compressed version and serve it directly. Configure Gzip at the origin for all compressible types:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>gzip on;\n\ngzip_vary on;\n\ngzip_proxied any;\n\ngzip_comp_level 6;\n\ngzip_min_length 1024;\n\ngzip_types\n\n\u00a0\u00a0\u00a0\u00a0text\/plain\n\n\u00a0\u00a0\u00a0\u00a0text\/css\n\n\u00a0\u00a0\u00a0\u00a0text\/javascript\n\n\u00a0\u00a0\u00a0\u00a0application\/javascript\n\n\u00a0\u00a0\u00a0\u00a0application\/json\n\n\u00a0\u00a0\u00a0\u00a0application\/xml\n\n\u00a0\u00a0\u00a0\u00a0image\/svg+xml\n\n\u00a0\u00a0\u00a0\u00a0font\/woff2;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">gzip on;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">gzip_vary on;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">gzip_proxied any;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">gzip_comp_level <\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">gzip_min_length <\/span><span style=\"color: #79B8FF\">1024<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">gzip_types<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0text<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\">plain<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0text<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\">css<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0text<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\">javascript<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0application<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\">javascript<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0application<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\">json<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0application<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\">xml<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0image<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\">svg<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\">xml<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0font<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\">woff2;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Level 6 balances compression ratio against CPU cost. Levels 7-9 provide marginal additional compression at significant CPU overhead \u2014 rarely worth it for static assets.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Cache-Control Headers: The Most Important Origin Configuration<\/strong><\/h2>\n\n\n\n<p>CDN behavior is almost entirely determined by the Cache-Control headers your origin sends. Getting these right determines whether your CDN caches aggressively (reducing origin load) or pulls frequently (adding unnecessary origin requests).<\/p>\n\n\n\n<p><strong>Static assets (CSS, JS, images, fonts):<\/strong> Set long max-age with fingerprinted URLs. When the file content changes, the filename changes (webpack content hash, etc.), so caching aggressively is safe:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>location ~* \\.(css|js|woff2|woff|ttf|jpg|jpeg|png|gif|ico|svg)$ {\n\n\u00a0\u00a0\u00a0\u00a0expires 1y;\n\n\u00a0\u00a0\u00a0\u00a0add_header Cache-Control \"public, max-age=31536000, immutable\";\n\n\u00a0\u00a0\u00a0\u00a0add_header Vary \"Accept-Encoding\";\n\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">location <\/span><span style=\"color: #F97583\">~*<\/span><span style=\"color: #E1E4E8\"> \\.(css<\/span><span style=\"color: #F97583\">|<\/span><span style=\"color: #E1E4E8\">js<\/span><span style=\"color: #F97583\">|<\/span><span style=\"color: #E1E4E8\">woff2<\/span><span style=\"color: #F97583\">|<\/span><span style=\"color: #E1E4E8\">woff<\/span><span style=\"color: #F97583\">|<\/span><span style=\"color: #E1E4E8\">ttf<\/span><span style=\"color: #F97583\">|<\/span><span style=\"color: #E1E4E8\">jpg<\/span><span style=\"color: #F97583\">|<\/span><span style=\"color: #E1E4E8\">jpeg<\/span><span style=\"color: #F97583\">|<\/span><span style=\"color: #E1E4E8\">png<\/span><span style=\"color: #F97583\">|<\/span><span style=\"color: #E1E4E8\">gif<\/span><span style=\"color: #F97583\">|<\/span><span style=\"color: #E1E4E8\">ico<\/span><span style=\"color: #F97583\">|<\/span><span style=\"color: #E1E4E8\">svg)$ {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0expires 1y;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0add_header Cache<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\">Control <\/span><span style=\"color: #9ECBFF\">&quot;public, max-age=31536000, immutable&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0add_header Vary <\/span><span style=\"color: #9ECBFF\">&quot;Accept-Encoding&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>The immutable directive tells CDN and browsers never to revalidate this URL \u2014 the content will never change at this URL.<\/p>\n\n\n\n<p><strong>HTML pages:<\/strong> Short or no cache. HTML changes with content updates and shouldn&#8217;t be aggressively cached unless you&#8217;ve implemented proper cache invalidation:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>location \/ {\n\n\u00a0\u00a0\u00a0\u00a0add_header Cache-Control \"public, max-age=300, stale-while-revalidate=60\";\n\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">location <\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0add_header Cache<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\">Control <\/span><span style=\"color: #9ECBFF\">&quot;public, max-age=300, stale-while-revalidate=60&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>stale-while-revalidate=60 allows CDN to serve a slightly stale HTML response while fetching a fresh copy in the background \u2014 reduces origin requests without serving stale content to users for more than 60 seconds.<\/p>\n\n\n\n<p><strong>API responses:<\/strong> Typically no-cache or short TTL:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>location \/api\/ {\n\n\u00a0\u00a0\u00a0\u00a0add_header Cache-Control \"private, no-store\";\n\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">location <\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\">api<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0add_header Cache<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\">Control <\/span><span style=\"color: #9ECBFF\">&quot;private, no-store&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Origin Shield Configuration<\/strong><\/h2>\n\n\n\n<p>An origin shield is a CDN feature that routes all edge-to-origin traffic through a single regional PoP rather than allowing all global edge nodes to pull directly from your origin. The practical benefit: instead of 50 edge nodes each requesting the same asset when a cache expires, one shield node makes the request and distributes the cached response to the other edge nodes.<\/p>\n\n\n\n<p><a href=\"https:\/\/developers.cloudflare.com\/cache\/how-to\/enable-tiered-cache\/\">Cloudflare&#8217;s Tiered Cache<\/a> implements this as a Smart Tiered Cache topology that automatically selects the best intermediate PoP based on your traffic patterns. Enable it in the Cloudflare dashboard under Caching &gt; Tiered Cache.<\/p>\n\n\n\n<p>For origins on InMotion&#8217;s Los Angeles data center, Cloudflare&#8217;s West US tier provides the lowest latency between the shield and origin. For the Amsterdam data center, the Western Europe tier is appropriate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Serving Static Assets from NVMe: I\/O Configuration<\/strong><\/h2>\n\n\n\n<p>Your dedicated server&#8217;s NVMe drives serve static assets to CDN edge nodes. NVMe I\/O throughput is rarely the constraint for static file serving \u2014 network bandwidth typically hits limits before NVMe does. But file system configuration affects serving speed:<\/p>\n\n\n\n<p><strong>Open file cache:<\/strong> Nginx caches file descriptors and stat() results for frequently-served files:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>open_file_cache max=10000 inactive=30s;\n\nopen_file_cache_valid 60s;\n\nopen_file_cache_min_uses 2;\n\nopen_file_cache_errors on;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">open_file_cache max<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">10000<\/span><span style=\"color: #E1E4E8\"> inactive<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\">30s;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">open_file_cache_valid 60s;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">open_file_cache_min_uses <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">open_file_cache_errors on;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>This eliminates repeated open() and stat() system calls for the same files \u2014 measurable improvement for high-request-rate static serving.<\/p>\n\n\n\n<p><strong>Sendfile:<\/strong> Use the kernel&#8217;s sendfile() system call instead of read()+write() for file transfer. Zero-copy data movement:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>sendfile on;\n\ntcp_nopush on;\u00a0 # Batch sendfile calls for efficiency\n\ntcp_nodelay on; # Disable Nagle after data is sent<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">sendfile on;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">tcp_nopush on;\u00a0 # Batch sendfile calls for efficiency<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">tcp_nodelay on; # Disable Nagle after data is sent<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p><strong>AIO for large files:<\/strong> For video files, large downloads, or other assets over 1MB:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>aio on;\n\ndirectio 512;\u00a0 # Use direct I\/O for files over 512 bytes\n\noutput_buffers 2 128k;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">aio on;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">directio <\/span><span style=\"color: #79B8FF\">512<\/span><span style=\"color: #E1E4E8\">;\u00a0 # Use direct <\/span><span style=\"color: #79B8FF\">I<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #79B8FF\">O<\/span><span style=\"color: #E1E4E8\"> for files over <\/span><span style=\"color: #79B8FF\">512<\/span><span style=\"color: #E1E4E8\"> bytes<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">output_buffers <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> 128k;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Monitoring Origin Performance from the CDN Perspective<\/strong><\/h2>\n\n\n\n<p>Standard server monitoring shows your server&#8217;s resource usage. Origin performance from the CDN&#8217;s perspective requires monitoring from the CDN layer.<\/p>\n\n\n\n<p><strong>Cloudflare Analytics<\/strong> shows origin response time (the time from CDN edge to your server and back), cache hit ratio, and error rates. Target:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cache hit ratio: 85%+ for content-heavy sites, 95%+ for static asset heavy sites<\/li>\n\n\n\n<li>Origin response time (TTFB at edge): under 100ms for cached responses, under 500ms for origin pulls<\/li>\n\n\n\n<li>Origin error rate (5xx): under 0.1%<\/li>\n<\/ul>\n\n\n\n<p><strong>Nginx access log analysis<\/strong> shows what the CDN is actually requesting from your origin. A high volume of requests for the same URL indicates a caching problem \u2014 either the URL isn&#8217;t being cached or cache is expiring too frequently:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># Find most frequently requested URLs (potential caching misses)\n\nawk '{print $7}' \/var\/log\/nginx\/access.log | sort | uniq -c | sort -rn | head -20<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\"># Find most frequently requested <\/span><span style=\"color: #B392F0\">URLs<\/span><span style=\"color: #E1E4E8\"> (potential caching misses)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">awk <\/span><span style=\"color: #9ECBFF\">&#39;{print $7}&#39;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">\/var<\/span><span style=\"color: #E1E4E8\">\/log\/nginx\/access.log | sort | uniq -c | sort -rn | head -20<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>If the same dynamic URLs appear repeatedly, they&#8217;re either not cacheable (correct for API endpoints) or missing Cache-Control headers (fixable).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>WordPress as CDN Origin<\/strong><\/h2>\n\n\n\n<p>WordPress sites commonly run behind CDN with a dedicated server as origin. <a href=\"https:\/\/wp-rocket.me\/\">WP Rocket<\/a>, <a href=\"https:\/\/wordpress.org\/plugins\/w3-total-cache\/\">W3 Total Cache<\/a>, and <a href=\"https:\/\/wordpress.org\/plugins\/litespeed-cache\/\">LiteSpeed Cache<\/a> all support CDN integration and manage Cache-Control headers automatically for WordPress-specific content types.<\/p>\n\n\n\n<p>Key WordPress configuration for CDN origin serving:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enable object caching with Redis (reduces dynamic page generation time, improving origin TTFB)<\/li>\n\n\n\n<li>Set page cache TTL to 30-60 minutes for logged-out users<\/li>\n\n\n\n<li>Exclude admin URLs, cart, checkout, and account pages from caching<\/li>\n\n\n\n<li>Enable CDN integration in the caching plugin to rewrite asset URLs to CDN hostnames<\/li>\n<\/ul>\n\n\n\n<p>InMotion Hosting&#8217;s Premier Care includes InMotion Solutions consulting time for teams setting up CDN integration for the first time, that hour of monthly consulting time can be used for CDN configuration review and optimization.<\/p>\n\n\n\n<p><strong>Related reading<\/strong>: <strong><a href=\"https:\/\/www.inmotionhosting.com\/blog\/network-latency-optimization-dedicated-servers\/\" type=\"post\" id=\"82491\">Network Latency Optimization for Dedicated Servers<\/a><\/strong> | <strong><a href=\"https:\/\/www.inmotionhosting.com\/blog\/server-resource-monitoring-performance-tuning\/\" type=\"post\" id=\"82494\">Server Resource Monitoring &amp; Performance Tuning<\/a><\/strong><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A CDN is only as fast as what it&#8217;s pulling from. When a CDN edge node needs to fetch an uncached asset from your dedicated server \u2014 a cache miss \u2014 the speed of that origin response determines how long the user waits. An origin server that responds in 50ms delivers a very different user experience than one that takes 800ms for the same request, even with CDN caching in front of it.<\/p>\n","protected":false},"author":116,"featured_media":0,"comment_status":"open","ping_status":"closed","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,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[355],"tags":[],"class_list":["post-82575","post","type-post","status-publish","format-standard","hentry","category-dedicated-server-hosting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>CDN Origin Server Optimization for Dedicated Infrastructure | InMotion Hosting<\/title>\n<meta name=\"description\" content=\"Optimize dedicated servers as CDN origin servers. Configuration for serving static assets efficiently, edge caching strategies, and origin pull performance.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CDN Origin Server Optimization for Dedicated Infrastructure | InMotion Hosting\" \/>\n<meta property=\"og:description\" content=\"Optimize dedicated servers as CDN origin servers. Configuration for serving static assets efficiently, edge caching strategies, and origin pull performance.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/\" \/>\n<meta property=\"og:site_name\" content=\"InMotion Hosting Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inmotionhosting\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-18T16:35:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inmotionhosting.com\/blog\/wp-content\/uploads\/2026\/03\/Dedicated-Servers-for-Media-Production-Video-Rendering.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sam Page\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@inmotionhosting\" \/>\n<meta name=\"twitter:site\" content=\"@inmotionhosting\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sam Page\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CDN Origin Server Optimization for Dedicated Infrastructure | InMotion Hosting","description":"Optimize dedicated servers as CDN origin servers. Configuration for serving static assets efficiently, edge caching strategies, and origin pull performance.","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:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/","og_locale":"en_US","og_type":"article","og_title":"CDN Origin Server Optimization for Dedicated Infrastructure | InMotion Hosting","og_description":"Optimize dedicated servers as CDN origin servers. Configuration for serving static assets efficiently, edge caching strategies, and origin pull performance.","og_url":"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/","og_site_name":"InMotion Hosting Blog","article_publisher":"https:\/\/www.facebook.com\/inmotionhosting","article_published_time":"2026-03-18T16:35:22+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.inmotionhosting.com\/blog\/wp-content\/uploads\/2026\/03\/Dedicated-Servers-for-Media-Production-Video-Rendering.png","type":"image\/png"}],"author":"Sam Page","twitter_card":"summary_large_image","twitter_creator":"@inmotionhosting","twitter_site":"@inmotionhosting","twitter_misc":{"Written by":"Sam Page","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/#article","isPartOf":{"@id":"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/"},"author":{"name":"Sam Page","@id":"https:\/\/www.inmotionhosting.com\/blog\/#\/schema\/person\/b459c4b748083c4f8431d5312e795796"},"headline":"CDN Origin Server Optimization for Dedicated Infrastructure","datePublished":"2026-03-18T16:35:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/"},"wordCount":990,"commentCount":0,"publisher":{"@id":"https:\/\/www.inmotionhosting.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inmotionhosting.com\/blog\/wp-content\/uploads\/2026\/03\/Dedicated-Servers-for-Media-Production-Video-Rendering-1024x538.png","articleSection":["Dedicated Server Articles"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/","url":"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/","name":"CDN Origin Server Optimization for Dedicated Infrastructure | InMotion Hosting","isPartOf":{"@id":"https:\/\/www.inmotionhosting.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/#primaryimage"},"image":{"@id":"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inmotionhosting.com\/blog\/wp-content\/uploads\/2026\/03\/Dedicated-Servers-for-Media-Production-Video-Rendering-1024x538.png","datePublished":"2026-03-18T16:35:22+00:00","description":"Optimize dedicated servers as CDN origin servers. Configuration for serving static assets efficiently, edge caching strategies, and origin pull performance.","breadcrumb":{"@id":"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/#primaryimage","url":"https:\/\/www.inmotionhosting.com\/blog\/wp-content\/uploads\/2026\/03\/Dedicated-Servers-for-Media-Production-Video-Rendering.png","contentUrl":"https:\/\/www.inmotionhosting.com\/blog\/wp-content\/uploads\/2026\/03\/Dedicated-Servers-for-Media-Production-Video-Rendering.png","width":1200,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.inmotionhosting.com\/blog\/cdn-origin-server-optimization-dedicated\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inmotionhosting.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Dedicated Server Articles","item":"https:\/\/www.inmotionhosting.com\/blog\/dedicated-server-hosting\/"},{"@type":"ListItem","position":3,"name":"CDN Origin Server Optimization for Dedicated Infrastructure"}]},{"@type":"WebSite","@id":"https:\/\/www.inmotionhosting.com\/blog\/#website","url":"https:\/\/www.inmotionhosting.com\/blog\/","name":"InMotion Hosting Blog","description":"Web Hosting Strategy, Trends and Security","publisher":{"@id":"https:\/\/www.inmotionhosting.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inmotionhosting.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.inmotionhosting.com\/blog\/#organization","name":"InMotion Hosting","url":"https:\/\/www.inmotionhosting.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.inmotionhosting.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.inmotionhosting.com\/blog\/wp-content\/uploads\/2019\/11\/imh-logo-all-colors-big.jpg","contentUrl":"https:\/\/www.inmotionhosting.com\/blog\/wp-content\/uploads\/2019\/11\/imh-logo-all-colors-big.jpg","width":1630,"height":430,"caption":"InMotion Hosting"},"image":{"@id":"https:\/\/www.inmotionhosting.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inmotionhosting","https:\/\/x.com\/inmotionhosting"]},{"@type":"Person","@id":"https:\/\/www.inmotionhosting.com\/blog\/#\/schema\/person\/b459c4b748083c4f8431d5312e795796","name":"Sam Page","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/35c230f33cd7aacf52f0f53bc02230a2ee7840b5b221af549d491ab98f65a363?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/35c230f33cd7aacf52f0f53bc02230a2ee7840b5b221af549d491ab98f65a363?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/35c230f33cd7aacf52f0f53bc02230a2ee7840b5b221af549d491ab98f65a363?s=96&r=g","caption":"Sam Page"},"url":"https:\/\/www.inmotionhosting.com\/blog\/author\/samp\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"primary_category":{"id":355,"name":"Dedicated Server Articles","slug":"dedicated-server-hosting","link":"https:\/\/www.inmotionhosting.com\/blog\/dedicated-server-hosting\/"},"_links":{"self":[{"href":"https:\/\/www.inmotionhosting.com\/blog\/wp-json\/wp\/v2\/posts\/82575","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inmotionhosting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inmotionhosting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inmotionhosting.com\/blog\/wp-json\/wp\/v2\/users\/116"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inmotionhosting.com\/blog\/wp-json\/wp\/v2\/comments?post=82575"}],"version-history":[{"count":1,"href":"https:\/\/www.inmotionhosting.com\/blog\/wp-json\/wp\/v2\/posts\/82575\/revisions"}],"predecessor-version":[{"id":82577,"href":"https:\/\/www.inmotionhosting.com\/blog\/wp-json\/wp\/v2\/posts\/82575\/revisions\/82577"}],"wp:attachment":[{"href":"https:\/\/www.inmotionhosting.com\/blog\/wp-json\/wp\/v2\/media?parent=82575"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.inmotionhosting.com\/blog\/wp-json\/wp\/v2\/categories?post=82575"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inmotionhosting.com\/blog\/wp-json\/wp\/v2\/tags?post=82575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}