Oracle Autonomous Database: configurar domínio personalizado no Oracle APEX

Você pode utilizar seu domínio personalizado para exibir sua aplicação Apex hospedada no Oracle Autonomous Database.

Para isso podemos utilizar proxy reverso no NGINX e configurá-lo para redirecionar nosso domínio para nossa aplicação Apex.

Requisitos

Primeiro requisito é ter uma máquina virtual (VM) rodando na Oracle Cloud Infrastructure - você pode utilizar uma configuração elegível para Always Free.

Veja esse guia para criação de uma máquina virtual na Oracle Cloud.

O próximo passo é realizar a instalação do NGINX e do LetsEncrypt - veja o guia de instalação aqui.

Por fim, realizamos a configuração do proxy reverso no NGINX.

Configurando proxy reverso no NGINX


Edite o arquivo nginx.conf:
vi /etc/nginx/nginx.conf

Adicione uma nova sessão de servidor:
server { 
        server_name  seudominio.com www.seudominio.com; 

        location /ords/ {
          proxy_pass url_instancia_apex/ords/;
          proxy_set_header Origin "" ;
          proxy_set_header X-Forwarded-Host $host:$server_port;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header X-Forwarded-Proto $scheme;
          proxy_connect_timeout 600;
          proxy_send_timeout 600;
          proxy_read_timeout 600;
          send_timeout 600;
        }

        location /i/ {
          proxy_pass url_instancia_apex/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;
        }
}
Para redirecionar para uma aplicação Apex em especifico, basta adicionar uma nova sessão após o bloco "location /i/" - foi utilizado o retorno 302 - redirecionamento temporário para que quando mudar a aplicação ou URL não seja impactado a indexação em ferramentas de busca e cause erros em navegadores com cache:
location / {
  return 302 /ords/f?p=102:1::::::;
}
Após isso basta salvar (pressione ESC e digite :wq e pressione ENTER). 

Execute o códgo abaixo para verificar algum erro de sintaxe:
nginx -t
E reinicie o Nginx:
nginx -s reload
Resultado final:

Com proxy:


Configurando no serviço Apex on-promise

Caso possuir o Apex instalado em um serviço on-promise, juntamente com o Ords, você pode efetuar o mesmo processo acima, apenas adicione a linha abaixo na sessão /ords/:
proxy_set_header Host $host; 

Ocultando a sessão /ords/ do URL do Apex

Para ocultar a parte /ords/ do link do Apex basta adicionar a configuração abaixo na sessão /ords/:
proxy_redirect http://$host/ords/ http://$host/; 
proxy_cookie_path /ords/ /;
Renomeie a sessão /ords/ para /, ficando assim:
location / { 
    proxy_pass http://127.0.0.1:8080/ords/; 
    proxy_set_header Origin "" ; 
    proxy_set_header Host $host; 
    proxy_set_header X-Forwarded-Host $host:$server_port; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_redirect http://$host/ords/ http://$host/; 
    proxy_cookie_path /ords/ /;
}
Apenas isso ✌

Comentários