8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | 23ai | Misc | PL/SQL | SQL | RAC | WebLogic | Linux

Home » Articles » Misc » Here

Oracle Application Express (APEX) Production Environment Topology

This article gives an example of the topology necessary to deploy an APEX application safely in a production environment.

Related articles.

Which gateway should I use for APEX?

APEX runs in the database, but it needs a gateway to allow URLs to be mapped to database calls. You will often see diagrams such as the following to explain how things fit together.

APEX Architecture

There are a number of gateways we can choose from, but which should we pick?

How do I deploy ORDS?

There are a number of ways to deploy ORDS, but which should we pick?

Do you give direct access to ORDS on the application server?

I would never recommend giving direct access to any application server, and I prefer not to give direct access to regular web servers either. Instead I would suggest fronting everything with a load balancer or a reverse proxy (using Apache or NGINX). Typically we use a load balancer. Using this extra layer is useful because of the following reasons.

What do we do?

I thought it might be good to give a real example of what we do in my current company. If you are not used to using all the pieces it can seem a bit daunting, but it's actually pretty simple. Your preferred solution will depend on your requirements, knowledge and company policies. We follow the same pattern whether we are using ORDS to front APEX applications, or just to deliver web services.

The overall picture looks a little like this.

APEX Topology

The net result, assuming we've not made mistakes, is that any specific alias "my-app.example.com" can be made available externally, campus/company only or available to individuals without allowing access to other services.

What about high availability?

Please read this before continuing.

APEX is a runtime engine inside the database, so it is only as available as the database itself. There are a number of ways to improve the availability of an Oracle database including the use of RAC and/or Data Guard. Your choice may depend on a number of factors, including cost and staff skills.

Making ORDS more highly available simply requires additional nodes (Servers, VMs or Containers) behind your load balancer.

Regarding the load balancer, clearly this can't be a single service. It must be highly available itself. How that is achieved depends on the technology being used.

For more information see:

Hope this helps. Regards Tim...

Back to the Top.