Can anyone provide recommendations and guidance on setting up and testing a reverse proxy with Amazon Cloudfront for a Webflow project, specifically when the client is not on the Enterprise plan?

TL;DR
  • Publish your Webflow site to its default webflow.io subdomain and ensure it's fully functional.  
  • Create a CloudFront distribution using the Webflow subdomain as the origin, set HTTPS policies, and optionally add custom headers.  
  • Configure your custom domain and SSL in CloudFront, then update DNS records to point to CloudFront.  
  • Optionally use Lambda@Edge to rewrite URLs or paths for localization or clean URLs.  
  • Test the setup on your custom domain for HTTPS functionality, asset loading, and proper routing.

To set up and test a reverse proxy using Amazon CloudFront with a Webflow project (non-Enterprise plan), you’ll need to manually configure CloudFront to serve as a proxy in front of your Webflow-hosted site. This allows you to use your own domain and customize headers and paths without Enterprise-level support.

1. Understand the Use Case and Limitations

  • Webflow limits custom reverse proxy support to Enterprise plans, but you can still use CloudFront to indirectly serve your content.
  • This approach does not allow Webflow CMS or Editor functionality on the proxied domain. It's best for cases like language localization, URL customization, or integrating Webflow into a broader site.

2. Set Up a Webflow Project with Webflow.io Subdomain

  • Publish your Webflow site to its default subdomain (e.g., yourproject.webflow.io).
  • Ensure the full site is functional under this domain before proceeding.

3. Create an Amazon CloudFront Distribution

  • Go to the CloudFront console in AWS and click Create Distribution.
  • Under Origin domain, enter your Webflow subdomain (e.g., yourproject.webflow.io).
  • Do not use the custom domain—only use Webflow's hosting domain.
  • Origin protocol policy: Set to HTTPS only.
  • Viewer protocol policy: Set to Redirect HTTP to HTTPS.
  • Enable CachingDisabled if your site has dynamic elements or forms.
  • Origin custom headers (optional):
  • Add headers if you want to restrict or identify CloudFront-origin traffic (e.g., X-From-CDN: true).

4. Configure the Alternate Domain and SSL

  • Set the Alternate Domain Names (CNAMEs): Add your desired domain (e.g., www.example.com).
  • Attach an SSL certificate from AWS Certificate Manager (must be provisioned in the us-east-1 region).
  • Ensure the cert includes all aliases (e.g., www.example.com and example.com if needed).

5. Update DNS Records

  • In your DNS provider, point your domain to the CloudFront distribution domain name (e.g., d123xyz.cloudfront.net) using CNAME or A record with alias support (like in Route 53).
  • Wait for DNS propagation to complete.

6. (Optional) Rewrite URLs or Paths via Lambda@Edge

  • Webflow URLs often follow specific patterns. If you need clean URLs or localization (e.g., /en/fr), use Lambda@Edge to rewrite paths or headers.
  • Example use cases:
  • Strip trailing slashes.
  • Redirect /blog to /blog.html if Webflow uses .html pages.
  • Keep Lambda functions lightweight and test thoroughly.

7. Test Your Setup

  • Access your site using the custom domain pointing at CloudFront.
  • Check for:
  • 403 or 404 errors (usually due to caching, headers, or origin misconfigurations).
  • HTTPS issues (caused by missing or mis-provisioned certs).
  • Broken links or missing assets, especially from third-party domains.

Summary

To reverse proxy a non-Enterprise Webflow site through Amazon CloudFront, publish your project to the default webflow.io subdomain, configure CloudFront with that as the origin, link your custom domain using CNAME/SSL, and use Lambda@Edge if URL rewriting is needed. This setup can serve a production-ready Webflow site under your own domain without needing an Enterprise account—but editing, CMS, and form features may be limited.

Rate this answer

Other Webflow Questions