{"id":2663,"date":"2025-08-25T10:35:49","date_gmt":"2025-08-25T10:35:49","guid":{"rendered":"https:\/\/www.devopsconsulting.in\/blog\/?p=2663"},"modified":"2025-08-25T10:35:50","modified_gmt":"2025-08-25T10:35:50","slug":"setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide","status":"publish","type":"post","link":"https:\/\/www.devopsconsulting.in\/blog\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\/","title":{"rendered":"Setting Up Keycloak in Production with Apache Reverse Proxy: A Step-by-Step Guide"},"content":{"rendered":"\n<p>Here&#8217;s a <strong>step-by-step guide<\/strong> to set up Keycloak in a production environment with Apache acting as a reverse proxy for <code>auth.holidaylandmark.com<\/code>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: <strong>Prepare Keycloak Configuration<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1.1 Keycloak Configuration (<code>keycloak.conf<\/code>)<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Locate the Keycloak Configuration File:<\/strong>\n<ul class=\"wp-block-list\">\n<li>In your Keycloak installation folder, go to <code>conf\/<\/code> and open (or create) <code>keycloak.conf<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Configure Database Connection:<\/strong><br>Replace the database settings with your own MariaDB credentials. <code>db=mariadb db-url=jdbc:mariadb:\/\/localhost:3306\/keycloak_db?localSocket=\/opt\/lampp\/var\/mysql\/mysql.sock db-username=root db-password=Hgjngfjnfs db-pool-initial-size=5 db-pool-min-idle=5 db-pool-max-size=25 db-pool-prefill=true<\/code><\/li>\n\n\n\n<li><strong>Configure Reverse Proxy (Apache):<\/strong><br>Set <code>http-enabled=true<\/code> (Keycloak listens on 8080, but Apache terminates TLS). <code>http-enabled=true http-port=8080 proxy=reencrypt proxy-headers=xforwarded<\/code><\/li>\n\n\n\n<li><strong>Set Hostname and Security Settings:<\/strong><br>Configure Keycloak&#8217;s hostname, strict mode for production, and backend checks. <code>hostname=auth.holidaylandmark.com hostname-strict=true hostname-strict-backchannel=true<\/code><\/li>\n\n\n\n<li><strong>Enable Health Checks and Metrics:<\/strong><br>Enable health and monitoring endpoints. <code>health-enabled=true metrics-enabled=true<\/code><\/li>\n\n\n\n<li><strong>Disable Debugging and Set Log Level:<\/strong><br>Keep logging level as <code>INFO<\/code> and disable hostname debugging. <code>log-level=INFO hostname-debug=false<\/code><\/li>\n\n\n\n<li><strong>Finalize Configuration File:<\/strong><br>Your final <code>keycloak.conf<\/code> should look like this: <code># =============================== # Keycloak Production Config # Reverse-proxied by Apache (LAMPP) # Hostname: auth.holidaylandmark.com # =============================== db=mariadb db-url=jdbc:mariadb:\/\/localhost:3306\/keycloak_db?localSocket=\/opt\/lampp\/var\/mysql\/mysql.sock db-username=root db-password=Hgjngfjnfs db-pool-initial-size=5 db-pool-min-idle=5 db-pool-max-size=25 db-pool-prefill=true http-enabled=true http-port=8080 proxy=reencrypt proxy-headers=xforwarded hostname=auth.holidaylandmark.com hostname-strict=true hostname-strict-backchannel=true cache=local health-enabled=true metrics-enabled=true log-level=INFO hostname-debug=false<\/code><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">1.2 Set Up Keycloak Admin User (First-Time Setup)<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Export the Environment Variables:<\/strong><br>Run these commands to set up the admin credentials (use only for the first run): <code>export KEYCLOAK_ADMIN=admin1 export KEYCLOAK_ADMIN_PASSWORD='Admin#1234'<\/code><\/li>\n\n\n\n<li><strong>Start Keycloak:<\/strong><br>Run the following command to start Keycloak for the first time: <code>bin\/kc.sh start --optimized<\/code> After the first start, <strong>delete<\/strong> or <strong>unset<\/strong> the environment variables to avoid reusing them in production: <code>unset KEYCLOAK_ADMIN unset KEYCLOAK_ADMIN_PASSWORD<\/code><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: <strong>Configure Apache as Reverse Proxy<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 Edit Apache Virtual Host for HTTPS<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Edit the Apache Configuration:<\/strong><br>Open your Apache virtual host configuration file (<code>httpd-vhosts.conf<\/code> or <code>extra\/httpd-vhosts.conf<\/code>): <code>sudo nano \/opt\/lampp\/etc\/extra\/httpd-vhosts.conf<\/code><\/li>\n\n\n\n<li><strong>Set Up SSL (HTTPS):<\/strong><br>Add the following configuration to create a virtual host for <code>auth.holidaylandmark.com<\/code>: <code>&lt;VirtualHost *:443> ServerName auth.holidaylandmark.com # Enable SSL SSLEngine on SSLCertificateFile \/opt\/lampp\/etc\/certs\/auth.holidaylandmark.com\/auth.holidaylandmark.com.cer SSLCertificateKeyFile \/opt\/lampp\/etc\/certs\/auth.holidaylandmark.com\/auth.holidaylandmark.com.key # Proxy to Keycloak (HTTP :8080) ProxyRequests Off ProxyPass \/ http:\/\/127.0.0.1:8080\/ ProxyPassReverse \/ http:\/\/127.0.0.1:8080\/ # Forward client IP\/Proto to Keycloak RequestHeader set X-Forwarded-Proto \"https\" RequestHeader set X-Forwarded-Host \"auth.holidaylandmark.com\" RequestHeader set X-Forwarded-Port \"443\" # Optional: additional security headers Header always set Strict-Transport-Security \"max-age=31536000; includeSubDomains; preload\" &lt;\/VirtualHost><\/code><\/li>\n\n\n\n<li><strong>Restart Apache:<\/strong><br>After saving the file, restart Apache to apply changes: <code>sudo \/opt\/lampp\/lampp restartapache<\/code><\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: <strong>Start Keycloak in Production<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Build Keycloak for Production:<\/strong><br>Keycloak should be started with the <code>--optimized<\/code> flag in production, ensuring it&#8217;s properly configured for performance and security: <code>bin\/kc.sh start --optimized<\/code><\/li>\n\n\n\n<li><strong>Verify Keycloak:<\/strong><br>Open a browser and visit <code>https:\/\/auth.holidaylandmark.com<\/code> to ensure that Keycloak is accessible and properly configured. Log in using the admin credentials set earlier.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: <strong>Post-Setup Configuration<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Access Keycloak Admin Console:<\/strong><br>Log into the Keycloak Admin Console at: <code>https:\/\/auth.holidaylandmark.com\/auth\/admin<\/code><\/li>\n\n\n\n<li><strong>Create Clients, Realms, and Users:<\/strong><br>Set up your <strong>clients<\/strong>, <strong>realms<\/strong>, and <strong>users<\/strong> via the Keycloak Admin Console. Customize the identity provider, authentication flows, and any other configuration necessary for your application.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: <strong>Verify and Test<\/strong><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Verify HTTPS Works:<\/strong><br>Ensure that your website is only accessible via HTTPS and not HTTP. If the HTTP port (80) is accessible, it is a potential security vulnerability.<\/li>\n\n\n\n<li><strong>Test Database Connectivity:<\/strong><br>Ensure that Keycloak can connect to the MariaDB database (use a MySQL client to verify the database is operational).<\/li>\n\n\n\n<li><strong>Test Admin Login:<\/strong><br>Use the admin credentials to access the Keycloak Admin Console and verify that everything is configured properly.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Full <code>keycloak.conf<\/code> Configuration:<br><\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># ===============================\n# Keycloak Production Config\n# Reverse-proxied by Apache (LAMPP)\n# Hostname: auth.holidaylandmark.com\n# ===============================\n\n# -------------------------------\n# Database (MariaDB \/ MySQL)\n# -------------------------------\n# Use MariaDB driver (works with MySQL too)\ndb=mariadb\n# Use local UNIX socket via MariaDB driver\ndb-url=jdbc:mariadb:\/\/localhost:3306\/keycloak_db?localSocket=\/opt\/lampp\/var\/mysql\/mysql.sock\ndb-username=root\ndb-password=Hgjngfjnfs\n\n# Connection Pool (tune as needed)\ndb-pool-initial-size=5\ndb-pool-min-idle=5\ndb-pool-max-size=25\ndb-pool-prefill=true\n\n# -------------------------------\n# HTTP \/ Proxy\n# -------------------------------\n# Keycloak listens on 0.0.0.0:8080 (no TLS here; Apache handles TLS)\nhttp-enabled=true\nhttp-port=8080\n# Make Keycloak respect X-Forwarded-* from Apache\nproxy=reencrypt\nproxy-headers=xforwarded\n\n# -------------------------------\n# Hostname\n# -------------------------------\nhostname=auth.holidaylandmark.com\nhostname-strict=true\nhostname-strict-backchannel=true\n# If you want admin console on same host (default):\n# hostname-admin=auth.holidaylandmark.com\n\n# Optional: if you serve Keycloak under a path, uncomment and adjust:\n# http-relative-path=\/auth\n\n# -------------------------------\n# Caching (single-node)\n# -------------------------------\ncache=local\n# For multi-node, you'd configure Infinispan + a cluster stack instead.\n\n# -------------------------------\n# Health \/ Metrics\n# -------------------------------\nhealth-enabled=true\nmetrics-enabled=true\n\n# -------------------------------\n# Logging\n# -------------------------------\nlog-level=INFO\n# log-console-output=json\n\n# -------------------------------\n# Hardening &amp; misc\n# -------------------------------\n# Disable verbose hostname debug\nhostname-debug=false\n# Prevent exposing server details\n# quarkus.http.filter.hide-server-header=true\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting Tips:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Keycloak logs:<\/strong> Check logs for errors or warnings: <code>tail -f standalone\/log\/server.log<\/code><\/li>\n\n\n\n<li><strong>Apache logs:<\/strong> Check Apache error logs if something goes wrong with proxying: <code>tail -f \/opt\/lampp\/logs\/error_log<\/code><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>By following this guide, you&#8217;ll have a secure, reverse-proxied Keycloak setup running at <code>https:\/\/auth.holidaylandmark.com<\/code> in a production environment with Apache and MariaDB.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here&#8217;s a step-by-step guide to set up Keycloak in a production environment with Apache acting as a reverse proxy for auth.holidaylandmark.com. Step 1: Prepare Keycloak Configuration 1.1&#8230; <\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[1432,1434,1433,1435,1438,1431,1436,1439,1437],"class_list":["post-2663","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-apache-reverse-proxy-keycloak","tag-deploy-keycloak-in-production","tag-keycloak-behind-apache-proxy","tag-keycloak-configuration-tutorial","tag-keycloak-production-environment-configuration","tag-keycloak-production-setup","tag-keycloak-with-apache-reverse-proxy","tag-keycloak-with-mariadb-configuration","tag-setting-up-keycloak-secure-environment"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Setting Up Keycloak in Production with Apache Reverse Proxy: A Step-by-Step Guide - DevOps Consulting<\/title>\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.devopsconsulting.in\/blog\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Setting Up Keycloak in Production with Apache Reverse Proxy: A Step-by-Step Guide - DevOps Consulting\" \/>\n<meta property=\"og:description\" content=\"Here&#8217;s a step-by-step guide to set up Keycloak in a production environment with Apache acting as a reverse proxy for auth.holidaylandmark.com. Step 1: Prepare Keycloak Configuration 1.1...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.devopsconsulting.in\/blog\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"DevOps Consulting\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-25T10:35:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-25T10:35:50+00:00\" \/>\n<meta name=\"author\" content=\"Abhishek Singh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Abhishek Singh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\\\/\"},\"author\":{\"name\":\"Abhishek Singh\",\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/#\\\/schema\\\/person\\\/fc397ba8be42f9fdd53450edfc73006f\"},\"headline\":\"Setting Up Keycloak in Production with Apache Reverse Proxy: A Step-by-Step Guide\",\"datePublished\":\"2025-08-25T10:35:49+00:00\",\"dateModified\":\"2025-08-25T10:35:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\\\/\"},\"wordCount\":448,\"commentCount\":0,\"keywords\":[\"Apache reverse proxy Keycloak\",\"Deploy Keycloak in production\",\"Keycloak behind Apache proxy\",\"Keycloak configuration tutorial\",\"Keycloak production environment configuration\",\"Keycloak production setup\",\"Keycloak with Apache reverse proxy\",\"Keycloak with MariaDB configuration\",\"Setting up Keycloak secure environment\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\\\/\",\"url\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\\\/\",\"name\":\"Setting Up Keycloak in Production with Apache Reverse Proxy: A Step-by-Step Guide - DevOps Consulting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/#website\"},\"datePublished\":\"2025-08-25T10:35:49+00:00\",\"dateModified\":\"2025-08-25T10:35:50+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/#\\\/schema\\\/person\\\/fc397ba8be42f9fdd53450edfc73006f\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/\",\"name\":\"DevOps Consulting\",\"description\":\"DevOps Consulting | SRE Consulting | DevSecOps Consulting | MLOps Consulting\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/#\\\/schema\\\/person\\\/fc397ba8be42f9fdd53450edfc73006f\",\"name\":\"Abhishek Singh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/790feefe779852cdf344ca7318bf6c13832223c9b3c6bf4d217658412041026d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/790feefe779852cdf344ca7318bf6c13832223c9b3c6bf4d217658412041026d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/790feefe779852cdf344ca7318bf6c13832223c9b3c6bf4d217658412041026d?s=96&d=mm&r=g\",\"caption\":\"Abhishek Singh\"},\"description\":\"I\u2019m Abhishek, a DevOps, SRE, DevSecOps, and Cloud expert with a passion for sharing knowledge and real-world experiences. I\u2019ve had the opportunity to work with Cotocus and continue to contribute to multiple platforms where I share insights across different domains: \u2022 DevOps School \u2013 Tech blogs and tutorials \u2022 Holiday Landmark \u2013 Travel stories and guides \u2022 Stocks Mantra \u2013 Stock market strategies and tips \u2022 My Medic Plus \u2013 Health and fitness guidance \u2022 TrueReviewNow \u2013 Honest product reviews \u2022 Wizbrand \u2013 SEO and digital tools for businesses I\u2019m also exploring the fascinating world of Quantum Computing.\",\"url\":\"https:\\\/\\\/www.devopsconsulting.in\\\/blog\\\/author\\\/abhishek\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Setting Up Keycloak in Production with Apache Reverse Proxy: A Step-by-Step Guide - DevOps Consulting","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.devopsconsulting.in\/blog\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\/","og_locale":"en_US","og_type":"article","og_title":"Setting Up Keycloak in Production with Apache Reverse Proxy: A Step-by-Step Guide - DevOps Consulting","og_description":"Here&#8217;s a step-by-step guide to set up Keycloak in a production environment with Apache acting as a reverse proxy for auth.holidaylandmark.com. Step 1: Prepare Keycloak Configuration 1.1...","og_url":"https:\/\/www.devopsconsulting.in\/blog\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\/","og_site_name":"DevOps Consulting","article_published_time":"2025-08-25T10:35:49+00:00","article_modified_time":"2025-08-25T10:35:50+00:00","author":"Abhishek Singh","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Abhishek Singh","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.devopsconsulting.in\/blog\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\/#article","isPartOf":{"@id":"https:\/\/www.devopsconsulting.in\/blog\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\/"},"author":{"name":"Abhishek Singh","@id":"https:\/\/www.devopsconsulting.in\/blog\/#\/schema\/person\/fc397ba8be42f9fdd53450edfc73006f"},"headline":"Setting Up Keycloak in Production with Apache Reverse Proxy: A Step-by-Step Guide","datePublished":"2025-08-25T10:35:49+00:00","dateModified":"2025-08-25T10:35:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.devopsconsulting.in\/blog\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\/"},"wordCount":448,"commentCount":0,"keywords":["Apache reverse proxy Keycloak","Deploy Keycloak in production","Keycloak behind Apache proxy","Keycloak configuration tutorial","Keycloak production environment configuration","Keycloak production setup","Keycloak with Apache reverse proxy","Keycloak with MariaDB configuration","Setting up Keycloak secure environment"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.devopsconsulting.in\/blog\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.devopsconsulting.in\/blog\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\/","url":"https:\/\/www.devopsconsulting.in\/blog\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\/","name":"Setting Up Keycloak in Production with Apache Reverse Proxy: A Step-by-Step Guide - DevOps Consulting","isPartOf":{"@id":"https:\/\/www.devopsconsulting.in\/blog\/#website"},"datePublished":"2025-08-25T10:35:49+00:00","dateModified":"2025-08-25T10:35:50+00:00","author":{"@id":"https:\/\/www.devopsconsulting.in\/blog\/#\/schema\/person\/fc397ba8be42f9fdd53450edfc73006f"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.devopsconsulting.in\/blog\/setting-up-keycloak-in-production-with-apache-reverse-proxy-a-step-by-step-guide\/"]}]},{"@type":"WebSite","@id":"https:\/\/www.devopsconsulting.in\/blog\/#website","url":"https:\/\/www.devopsconsulting.in\/blog\/","name":"DevOps Consulting","description":"DevOps Consulting | SRE Consulting | DevSecOps Consulting | MLOps Consulting","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.devopsconsulting.in\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.devopsconsulting.in\/blog\/#\/schema\/person\/fc397ba8be42f9fdd53450edfc73006f","name":"Abhishek Singh","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/790feefe779852cdf344ca7318bf6c13832223c9b3c6bf4d217658412041026d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/790feefe779852cdf344ca7318bf6c13832223c9b3c6bf4d217658412041026d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/790feefe779852cdf344ca7318bf6c13832223c9b3c6bf4d217658412041026d?s=96&d=mm&r=g","caption":"Abhishek Singh"},"description":"I\u2019m Abhishek, a DevOps, SRE, DevSecOps, and Cloud expert with a passion for sharing knowledge and real-world experiences. I\u2019ve had the opportunity to work with Cotocus and continue to contribute to multiple platforms where I share insights across different domains: \u2022 DevOps School \u2013 Tech blogs and tutorials \u2022 Holiday Landmark \u2013 Travel stories and guides \u2022 Stocks Mantra \u2013 Stock market strategies and tips \u2022 My Medic Plus \u2013 Health and fitness guidance \u2022 TrueReviewNow \u2013 Honest product reviews \u2022 Wizbrand \u2013 SEO and digital tools for businesses I\u2019m also exploring the fascinating world of Quantum Computing.","url":"https:\/\/www.devopsconsulting.in\/blog\/author\/abhishek\/"}]}},"_links":{"self":[{"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/posts\/2663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/comments?post=2663"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/posts\/2663\/revisions"}],"predecessor-version":[{"id":2667,"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/posts\/2663\/revisions\/2667"}],"wp:attachment":[{"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/media?parent=2663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/categories?post=2663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsconsulting.in\/blog\/wp-json\/wp\/v2\/tags?post=2663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}