Setting up HA Metabase

Hi,

I have a sample setup of Metabase in HA mode where two servers running Metabase and nginx have been configured behind a load balancer (HAProxy). The LB is set to use least connection.
My problem for now is that once in a while when loading Metabase, I will get a blank screen even though from the developer console, I have everything returning status 200.
When I clear cookies and cache, Im able to reload Metabase but when I log in, I get the "New login" email no matter how many times I login. As per my understanding, setting up HA Metabase was just a matter of creating two identical instances sharing the same DB and nothing else.
Could anyone with experience with this please share if theres more I need to do?

{
  "browser-info": {
    "language": "en-GB",
    "platform": "MacIntel",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
    "vendor": "Google Inc."
  },
  "metabase-info": {
    "databases": [
      "postgres",
      "clickhouse",
      "vertica"
    ],
    "run-mode": "prod",
    "plan-alias": "",
    "version": {
      "date": "2025-01-27",
      "tag": "v0.52.7.4",
      "hash": "0893082"
    },
    "settings": {
      "report-timezone": null
    },
    "hosting-env": "unknown",
    "application-database": "postgres",
    "application-database-details": {
      "database": {
        "name": "PostgreSQL",
        "version": "14.8"
      },
      "jdbc-driver": {
        "name": "PostgreSQL JDBC Driver",
        "version": "42.7.3"
      }
    }
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "21.0.6+7-LTS",
    "java.vendor": "Eclipse Adoptium",
    "java.vendor.url": "https://adoptium.net/",
    "java.version": "21.0.6",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "21.0.6+7-LTS",
    "os.name": "Linux",
    "os.version": "4.18.0-513.11.1.el8_9.x86_64",
    "user.language": "en",
    "user.timezone": "Etc/UTC"
  }
}

Below is a slice of my nginx config on both servers. Removed unnecessary details about the server and SSL

server {
  listen [::]:443 ssl;
  listen 443 ssl;

  location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_redirect     off;
    proxy_set_header   Host $host;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Host $server_name;
    proxy_set_header   X-Forwarded-Proto $scheme;
    proxy_no_cache     $http_cache_control;
    add_header X-Server-Hostname $hostname;
  }

}

[quote="kweyukevin, post:1, topic:217992"]
Issue identified to have been caused by config on load balancer

Hello!

Could you share what config caused the problem and how you fixed it? In case someone else stumbles into the same problem in the future, this might be useful insight to have :slight_smile: