{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["img"]},"type":"markdown"},"seo":{"title":"Setting up a Reverse Proxy in AWS CloudFront","description":"Integrate and automate your content creation process with Foleon's powerful API.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"setting-up-a-reverse-proxy-in-aws-cloudfront","__idx":0},"children":["Setting up a Reverse Proxy in AWS CloudFront"]},{"$$mdtype":"Tag","name":"div","attributes":{"style":{"padding":"1em","backgroundColor":"#fff3cd","borderLeft":"5px solid #ffeeba","margin":"1em 0"}},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["⚠️ Warning:"]}," This guide provides a general overview of the configuration process. Technical requirements vary by environment; always consult your internal IT or security teams before applying these settings. If you would like to complete this setup with a Foleon technical expert, please contact ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Foleon Support"]}," or your ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Customer Success Manager."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"1-adding-your-domain-into-foleon","__idx":1},"children":["1. Adding your domain into Foleon"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["login to Foleon"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["go to \"Domains\" in the Admin Console (or your workspace)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Use HTTPS protocol to ensure End to End encryption"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click \"Create new Domain\""]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fill in the domain"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click the checkbox for reverse proxy"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["(optional) enter your certificate details"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click \"save\""]}]},{"$$mdtype":"Tag","name":"Image","attributes":{"src":"/assets/domains.3b86bffae10ff009a14daf55021f0e6bac24bc78dff6fe695f1202d24a89f377.9c1bb791.gif","alt":"domains.gif","withLightbox":true,"width":"","height":""},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"2-configure-the-origin","__idx":2},"children":["2. Configure the Origin"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In your CloudFront Distribution, create a new Origin:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Origin Domain:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["s1.foleon.com"]}," (EU) or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["s1.us.foleon.com"]}," (US)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Protocol:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["HTTPS only"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Name:"]}," Give it a clear name like ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FoleonOrigin"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"3-create-a-cache-behavior","__idx":3},"children":["3. Create a Cache Behavior"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Create a new Behavior to \"catch\" the Foleon path:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Path Pattern:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/en/guides/*"]},". (example)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Origin:"]}," Select the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["FoleonOrigin"]}," created in Step 2."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Viewer Protocol Policy:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Redirect HTTP to HTTPS"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Allowed HTTP Methods:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["HEAD"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["OPTIONS"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PUT"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PATCH"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE"]}]}]},{"$$mdtype":"Tag","name":"div","attributes":{"style":{"padding":"1em","backgroundColor":"#e7f5ff","borderLeft":"5px solid #339af0","margin":"1em 0"}},"children":["\n  Change ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/en/guides/*"]}," to your preferred base path. For example: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/publications/*",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"4-headers--policies","__idx":4},"children":["4. Headers & Policies"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Foleon requires the original Host header to identify your project."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Origin Request Policy:"]}," Select the managed policy ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AllViewer"]}," (this ensures ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Host"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["User-Agent"]},", and other headers are forwarded)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Alternatively (Custom):"]}," If creating a custom policy, you must allow-list the Host header. CloudFront will automatically include standard ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Forwarded-For"]}," headers."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"5-deploy-and-test","__idx":5},"children":["5. Deploy and Test"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Deploy:"]}," Save changes and wait for the status to reach \"Deployed\" (usually 3–15 minutes)."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Verify:"]}," Navigate to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://yourdomain.com/en/guides/"]},". You should see a Foleon ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404"]}," page. This confirms CloudFront is correctly talking to Foleon."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Success:"]}," Once you complete Step 6, your content will load."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"6-apply-a-domain-to-a-project","__idx":6},"children":["6. Apply a domain to a project"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Login to foleon."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Go to project settings."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select the newly created domain."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Setup the basepath / subfolder you want to use to publish your documents on."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Make sure to publish a document in this project."]}]},{"$$mdtype":"Tag","name":"div","attributes":{"style":{"padding":"1em","backgroundColor":"#e7f5ff","borderLeft":"5px solid #339af0","margin":"1em 0"}},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["TIP:"]}," You can setup multiple projects with the same basepath e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/en/guide/finance/"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/en/guide/legal/"]}]}]},"headings":[{"value":"Setting up a Reverse Proxy in AWS CloudFront","id":"setting-up-a-reverse-proxy-in-aws-cloudfront","depth":1},{"value":"1. Adding your domain into Foleon","id":"1-adding-your-domain-into-foleon","depth":2},{"value":"2. Configure the Origin","id":"2-configure-the-origin","depth":2},{"value":"3. Create a Cache Behavior","id":"3-create-a-cache-behavior","depth":2},{"value":"4. Headers & Policies","id":"4-headers--policies","depth":2},{"value":"5. Deploy and Test","id":"5-deploy-and-test","depth":2},{"value":"6. Apply a domain to a project","id":"6-apply-a-domain-to-a-project","depth":2}],"frontmatter":{"seo":{"title":"Setting up a Reverse Proxy in AWS CloudFront"}},"lastModified":"2026-03-31T14:06:01.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/reverse_proxy/cloudfront","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}