Ask Reuben

ROOT_URL_PREFIX

Why does my Genero application not run when behind a Reverse Proxy?

Why does my Genero application not run when behind a Load Balancer? 

What is ROOT_URL_PREFIX? 

What happened to ROOT_URL_PREFIX in 4.00?

You have successfully configured your Genero application to run via Genero Application Server in your development environment, but then you hit an error when trying to deploy to a customers environment.  OR you have a good configuration in your customers environment and then a change is made in the customers environment such as adding a Reverse Proxy or a Load Balancer and you hit an error.

When you inspect the web pages and various log files, you might see that a file was being requested via http instead of https and via a private server name rather than a public facing URL.  For instance, you might see “http://private-server-name/gas/ua/w/gbc/index.html” was attempted to be accessed when “https://public-server-name/gas/ua/r/app_name” is your public facing URL

When you enter a URL into a Web Browser, the Web Server that processes this request may send this to another server for processing.  The use of a  Reverse Proxy or Load Balancer are the two classic cases where this might occur.  The end-user is unaware that this step occurs, they know they have typed a URL into a browser, but they don’t know and don’t need to know what server is ultimately processing the request.  Similarly this server doing the processing does not necessarily know where the actual request came from, and so if it generates a URL it might generate this URL relative to itself rather than a URL that is suitable for consumption by the public facing web server.


Prior to 4.00, the solution was an entry called ROOT_URL_PREFIX in the GAS configuration file.  You set this GAS configuration file parameter to be the public facing URL prefix (The prefix being what is before the /ua/r part of the public facing URL).  For instance if serverA was the public facing server that was forwarding requests to serverB, you might set the value of ROOT_URL_PREFIX to “https://serverA/gas”.  .  If Genero Application Server needed to generate any URL it would replace the prefix it had internally with the value in ROOT_URL_PREFIX.


In the 4.00 Genero release, an entry in the Upgrade Guide for Genero Application Server indicated that ROOT_URL_PREFIX was deprecated.  The Genero Application Server has been enhanced to use X-Forwarded headers to determine what the public facing URL was.  The ROOT_URL_PREFIX entry is now unnecessary.   As part of upgrading to Genero, if you had an entry in ROOT_URL_PREFIX,  follow the notes in the Upgrade Guide and  make sure that your Web Server is configured to pass the X-Forwarded series of headers.