# Redundant Failover Http Redirection - Perspective

**URL:** <https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133>\
**Category:** Ignition\
**Tags:** ignition80\
**Created:** [July 27, 2020, 8:26pm UTC](https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133 "2020-07-27T20:26:25Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![scott.stamps](https://avatars.discourse-cdn.com/v4/letter/s/ba9def/32.png) [@scott.stamps](https://forum.inductiveautomation.com/u/scott.stamps)\
**Post date:** [July 27, 2020, 8:26pm UTC](https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133/1 "2020-07-27T20:26:25Z")

</div>

All - we recently set up and tested our Ignition redundancy (forced a failover). Everything worked very well except for Perspective. We expected inbound requests for Perspective projects to be redirected, yet they were not. For example, we expected requests for: [https://masterserver/data/perspective/client/project](https://masterserver/data/perspective/client/project) to have been redirected to: [https://backupserver/data/perspective/client/project](https://backupserver/data/perspective/client/project).

Is this incorrect? Or, is there a needed configuration change to support this? Thanks.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [July 27, 2020, 10:02pm UTC](https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133/2 "2020-07-27T22:02:09Z")

</div>

This really isn’t possible the way you’re describing. Think about this: If `google.com` is down, where would you expect to be getting a redirect to `googlebackup.com` from? By definition, if the gateway is down and the backup has taken over, there’s no longer any webserver at `<primary>/data/perspective/client/project` to serve up even a redirect notice to `<backup>/data/perspective/client/project`. It’s just fundamentally not possible to have a single webserver, _in isolation_, do what you’re describing. A URL always points to a specific ‘resource’ (hence the name) - so in the ‘naive’ architecture, `<primary>/data/perspective/client/project` is always the exact location of the primary gateway.

What you’re actually looking for is to have `<something>/data/perspective/client/project` resolve to some other application, which is acting as a middleman - you would go to `<somethingElse>/data/perspective/client/project/`, and that other service would conditionally route you to `<primary>/data/perspective/client/project` or `<backup>/data/perspective/client/project`. There are infinite possibilities for this - look into load balancers, reverse proxies, etc - `nginx` is a solid choice for a Linux server. Crucially, this middleman _must_ be at a separate network location - it doesn’t matter to _consumers_ of `<yourServer>/data/perspective/client/project`, but internally, the middleman itself must have unique addresses for both the primary and backup nodes (or however many nodes you have; true load balancers can scale “horizontally” to multiple nodes). This also isn’t an area Inductive Automation is interested in providing a solution first party - HTTP load balancers are a “solved” problem, and nothing we can come up with would improve on existing open source, free solutions.

There is one caveat/wrinkle/exception to all this - if you are _already in_ a Perspective session when the master -\> backup transition happens, things (should) continue to work, “seamlessly”. How? Because the actual Perspective client is a so-called “Single-Page Application” - once you’ve downloaded all the required resources (which happens as soon as you open a Perspective session), everything else is happening, from your web browser’s perspective, on a single page - the frontend is continually talking to _some_ backend via an open websocket, but in the event of a failure on that connection, it will also have downloaded the address of the backup server, and thus the frontend can independently attempt to connect to the backup system. Vision clients work in much the same way. Crucially, though, the difference is in the scope of responsibility - the actual Ignition application (Vision or Perspective) “knows” how to find the backup - but a standalone web browser, pointed at `<primary>/data/perspective/client/project`, simply cannot know where the backup server is without _something_ there to redirect it.

---

<div class="post-metadata">

**Author:** ![scott.stamps](https://avatars.discourse-cdn.com/v4/letter/s/ba9def/32.png) [@scott.stamps](https://forum.inductiveautomation.com/u/scott.stamps)\
**Post date:** [July 28, 2020, 1:47pm UTC](https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133/3 "2020-07-28T13:47:58Z")

</div>

From a general http standpoint, makes complete sense. It’s your last paragraph (seeing how open Perspective sessions behave) that made us wonder if there was some feature that made it doable within Ignition. We’ll take a look at our options. Thanks for the feedback.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [July 29, 2020, 6:05pm UTC](https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133/4 "2020-07-29T18:05:40Z")

</div>

Since it came up with a support rep - a small addendum to my last paragraph. Local client fallback, as it works in Vision, is basically not possible within a generic web browser. Browsers, for _extremely good_ security reasons, don’t allow a network location (ie, `gatewayIp:8088` to suddenly start requesting local assets - imagine if a malicious website could start asking for local files or interact with local applications with open ports. See [Same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy) for more information. There are specific customizations you could perform, both on your web browser and both Ignition gateways, to theoretically allow this, but it’s not something that’s currently supported by actual Perspective sessions.

---

<div class="post-metadata">

**Author:** ![David\_Nicks](https://avatars.discourse-cdn.com/v4/letter/d/8491ac/32.png) [@David\_Nicks](https://forum.inductiveautomation.com/u/David_Nicks)\
**Post date:** [April 9, 2024, 1:31pm UTC](https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133/5 "2024-04-09T13:31:35Z")

</div>

What if you set up the Homepage Redirect URL to point to [https://masterserver/data/perspective/client/project](https://masterserver/data/perspective/client/project) and set up all the client shortcuts to point to [https://backupserver/data/perspective/client/project](https://backupserver/data/perspective/client/project)?

Will the backup gateway still redirect if the primary is down? Or could it be configured to stop redirecting if it's the active gateway?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [April 9, 2024, 1:53pm UTC](https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133/6 "2024-04-09T13:53:11Z")

</div>

> [@David\_Nicks](#):
>
> What if

Go back and read this part:

> [@paul-griffith](#):
>
> What you’re actually looking for .....

A browser shortcut/bookmark only points to one target location. If either the primary or backup, that shortcut/bookmark simply _ **cannot** _ work when the corresponding part of the redundant server pair is down. For shortcuts/bookmarks to work in either case, they must point at a HA proxy or similar server that can redirect to the currently running real server.

---

<div class="post-metadata">

**Author:** ![Hugh](https://avatars.discourse-cdn.com/v4/letter/h/c5a1d2/32.png) [@Hugh](https://forum.inductiveautomation.com/u/Hugh)\
**Post date:** [September 16, 2024, 10:58pm UTC](https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133/7 "2024-09-16T22:58:24Z")

</div>

It is quite disappointing that Ignition does not have an internal solution for this.  
The attitude that "IT can handle this" that I have seen across a few topics diminishes the value of the product compared to other vendors.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [September 17, 2024, 2:10am UTC](https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133/8 "2024-09-17T02:10:54Z")

</div>

> [@Hugh](#):
>
> quite disappointing

Go back and read this whole topic again.

IA cannot wave a magic wand to make browsers do what it wants.

If you need/want total control, use Vision. Full stop.

---

<div class="post-metadata">

**Author:** ![Chris\_Bingham](https://avatars.discourse-cdn.com/v4/letter/c/e5b9ba/32.png) [@Chris\_Bingham](https://forum.inductiveautomation.com/u/Chris_Bingham)\
**Post date:** [May 14, 2026, 10:48pm UTC](https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133/9 "2026-05-14T22:48:30Z")

</div>

> [@Hugh](#):
>
> It is quite disappointing that Ignition does not have an internal solution for this.

A client using Perspective Workstation will be able to connect to the backup gateway while the primary is down, provided that the PW app has connected to the GW pair in the past while the primary was operational.

---

<div class="post-metadata">

**Author:** ![Canuck](https://avatars.discourse-cdn.com/v4/letter/c/65b543/32.png) [@Canuck](https://forum.inductiveautomation.com/u/Canuck)\
**Post date:** [June 9, 2026, 6:19pm UTC](https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133/10 "2026-06-09T18:19:04Z")

</div>

I'm using an Apache reverse proxy normally pointed to the Master server address. I've been running into instances where my Master automatically fails over to the Secondary. However, the Master is not failed so it's accepting connections from the reverse proxy, but not serving up any perspective pages. So to the end user, it looks like Ignition is broken since the page starts loading, but just sits there trying to launch the client instance.

I'm wanting to configure my reverse proxy to redirect to the secondary when it's in control, but I can't figure out what status from either Ignition servers I can use to let the reverse proxy know which server is active as primary in order for it to direct the traffic there instead of acting as a load-balancer.

Running 8.1.48 if that makes a difference.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [June 9, 2026, 6:42pm UTC](https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133/11 "2026-06-09T18:42:10Z")

</div>

Ignition redundancy is designed for clients to make independent connections to the backup gateway, at its own URL. You need another reverse proxy for the backup, or at least to use unique DNS names at one proxy to route separately to the backup.

You cannot make it work through a single URL.

A proxy's status feature is only helpful to redirect an initial connection while a target is uncommunicative. All other cases must be handled by the client.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [June 9, 2026, 9:04pm UTC](https://forum.inductiveautomation.com/t/redundant-failover-http-redirection-perspective/37133/12 "2026-06-09T21:04:46Z")

</div>

When running, the gateway hosts a public endpoint (`/system/gwinfo`, as in `http://localhost:8088/system/gwinfo`) that returns a simplistic semicolon delimited list of status information:

```python
ContextStatus=RUNNING;PlatformName=Ignition-DV-pgriffith-MBP;Version=(Dev Version);PlatformEdition=;Plugins=;AllowDesignerSSO=false;RedundancyStatus=Independent;RedundantState=Good;RedundantNodeActiveStatus=Active;RedundantBackupAddresses=;OS=Mac OS X;RuntimeVersion=25.0.3;RequireSsl=false;launcherApiVersion=5;UseCondensedDialogFont=false;

```

You can parse this and use that to determine what the instance itself thinks its role should be.
