Table of contents
This blog differs from other methods in these regards:
Use of Docker instead of Non-containerized deployment
Use of Cloudflare 15 year Certificates instead of Let’s Encrypt 3 monthlies
This is the only guide, I believe, that includes steps for Nginx Proxy Manager
If you want to use native & Let’s Encrypt, then I suggest you follow this guide.
If you are not using Autonomous DB & using something self-hosted or “other cloud”, then the configuration in this guide may suit you better.
These are the methods described in this blog
Nginx Proxy Manager
Nginx
Cloudflare Worker - nearly there/coming soon
I find Nginx Proxy Manager the best especially if you already have a NPM setup.
The Nginx configuration files used in this blog are wildly documented on the web for Oracle APEX - thanks Timo. I do not take credit for their creation. This blog is about the installation and appliance of those configurations on Docker containers.
I also use Cloudflare 15 year Origin Certificates rather than the Let’s Encrypt 3 monthlies.
All approaches contain 2 commented lines in the configuration. Un-comment these and customize them if you want your URL to go to a specific application.
If you un-comment these, actually it makes sense to do it (rather than navigating to the ORDS landing page), you can always get to page designer using http://your-custom-domain/ords/apex
Nginx Proxy Manager
First, follow this guide to create an Nginx Proxy Manager on Oracle Cloud. Ensure you follow all steps including opening the ports on Oracle Cloud.
Create a Proxy Host with these details
In Advanced, paste in the below changing your-adb-url on two occasions.
location /ords/ {
proxy_pass https://your-adb-url/ords/;
proxy_set_header Origin "" ;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
# Navigate direct to an Application
# proxy_redirect https://your-adb-url/ords/_/landing https://example.com/ords/r/your-wksp/your-app-alias;
# proxy_redirect https://your-adb-url/ https://example.com/;
}
location /i/ {
proxy_pass https://your-adb-url/i/;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Click Save
ENJOY!
Nginx
First, Create a Compute Instance on Oracle Cloud.
Then, open ports 80 & 443 following this guide
Then, install docker-ce edition on Oracle Compute.
Now, install Nginx
docker run --name mynginx -p 80:80 -p 443:443 -d nginx
Fetch your IP (unless you it know it already)
curl ipconfig.io
Try the IP in your browser
Now we enter bash
docker exec -it mynginx /bin/bash
Update apt repositories
apt update
Install nano
apt install nano -y
Create an ssl folder to hold the Cloudflare Certificates.
mkdir /etc/nginx/ssl/
Paste in the Origin Certificate from the Get a (Sub) Domain an Certificate steps & Ctrl+X to save and exit.
nano /etc/nginx/ssl/cert.pem
Paste in the Private Key from the Get a (Sub) Domain an Certificate steps & Ctrl+X to save and exit.
nano /etc/nginx/ssl/key.pem
Create an Nginx configuration file using your domain name in the filename
nano /etc/nginx/conf.d/example.com.conf
paste in the configuration below changing example.com to your sub/domain several times and changing the your text several times.
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
location /ords/ {
proxy_pass https://your-adb-url/ords/;
proxy_set_header Origin "" ;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
# Navigate direct to an Application
# proxy_redirect https://your-adb-url/ords/_/landing https://example.com/ords/r/your-wksp/your-app-alias;
# proxy_redirect https://your-adb-url/ https://example.com/;
}
location /i/ {
proxy_pass https://your-adb-url/i/;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name 0code.io;
return 301 https://$host$request_uri;
}
exit a few times
exit
Restart Nginx container
docker restart mynginx
Cloudflare Worker
Nearly there/coming soon
ENJOY!
What’s the picture? It’s the shop on the Platform of Knaresborough Train Station. Visit Yorkshire