<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Cloudflare on Luis Sousa Blog</title>
    <link>https://89393b0c.nuvai-blog.pages.dev/tags/cloudflare/</link>
    <description>Recent content in Cloudflare on Luis Sousa Blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sat, 07 Mar 2026 12:06:00 +0000</lastBuildDate>
    <atom:link href="https://89393b0c.nuvai-blog.pages.dev/tags/cloudflare/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Self-hosted image optimization for WordPress with imgproxy (no premium plugins)</title>
      <link>https://89393b0c.nuvai-blog.pages.dev/posts/self-hosted-wordpress-imgproxy/</link>
      <pubDate>Sat, 07 Mar 2026 12:06:00 +0000</pubDate>
      <guid>https://89393b0c.nuvai-blog.pages.dev/posts/self-hosted-wordpress-imgproxy/</guid>
      <description>&lt;p&gt;We run a travel blog (&lt;a href=&#34;https://joyofexploringtheworld.com/&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;joyofexploringtheworld.com&lt;/a&gt;) on a budget VPS with Docker Compose and free Cloudflare. Premium image plugins like ShortPixel charge for resize and optimize—we wanted dynamic images without recurring costs. Here’s how we did it with imgproxy.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-imgproxy&#34;&gt;&#xA;  Why imgproxy&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#why-imgproxy&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;imgproxy runs in Docker, supports signed URLs and allowlisted sources, and outputs WebP/AVIF. We use the official image &lt;code&gt;ghcr.io/imgproxy/imgproxy&lt;/code&gt; and pin a version tag for stable deploys. No post edits needed: we rewrite image URLs at runtime via a WordPress MU-plugin so existing content and our Bricksy Pro FSE output stay unchanged.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Managing Cloudflare www-to-apex redirects with Terraform for WordPress SEO</title>
      <link>https://89393b0c.nuvai-blog.pages.dev/posts/cloudflare-www-to-apex-redirects-terraform/</link>
      <pubDate>Sat, 07 Mar 2026 12:00:00 +0000</pubDate>
      <guid>https://89393b0c.nuvai-blog.pages.dev/posts/cloudflare-www-to-apex-redirects-terraform/</guid>
      <description>&lt;p&gt;For SEO, &lt;code&gt;www.example.com&lt;/code&gt; should 301 redirect to &lt;code&gt;example.com&lt;/code&gt; so search engines see one canonical host. We manage our travel blog&amp;rsquo;s infrastructure with Terraform, including Cloudflare. When we tried to add the www-to-apex redirect, we hit &amp;ldquo;exceeded maximum number of zone rulesets.&amp;rdquo; Here&amp;rsquo;s how we fixed it and manage redirects as code.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-terraform-for-cloudflare&#34;&gt;&#xA;  Why Terraform for Cloudflare&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#why-terraform-for-cloudflare&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;Link to heading&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;Link to heading&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Terraform gives you versioned, repeatable config. No manual dashboard drift, no &amp;ldquo;who changed what&amp;rdquo; surprises. Redirects live in &lt;code&gt;main.tf&lt;/code&gt; and are applied consistently.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
