Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Consegui configurar e por para funcionar o https porem se chamar sem https funciona

Como fazer para que ele não aceite mais a chamada anterior? Se eu usar a URL: http://www.arptec.ml/web-manager/login.xhtml é aceito Se por outro lado eu chamar a URL: https://www.arptec.ml/web-manager/login.xhtml funciona também.

Uma outra coisa é que fiz um upgrade na aplicação no host e parece que ela não foi atualizada no CloudFront, fica exibindo sempre a chamada antiga. Se eu pegar o DNS publico do servidor ele exibe a aplicação atual. http://ec2-54-164-75-188.compute-1.amazonaws.com:8080/web-manager/login.xhtml

8 respostas

Olá,

Para permitir somente o acesso HTTPs, no Cloudfront você pode escolher a opção Redirect HTTP to HTTPS que fica na opção Default Cache Behavior Settings.

O Cloudfront utiliza por padrão o cabeçalho de origem para determinar o período no qual o conteúdo será cacheado pelos pontos de presença, que por padrão irá durar 24 horas. Para que a mudança seja refletida antes, na opção Object Caching também dentro de Default Cache Behavior Settings você poderá customizar o tempo o qual essa consulta para o servidor de origem poderá ser realizada. Por exemplo, deixando os valores de TTL em 0, o CloudFront fará a consulta no servidor de origem.

Abs

Oi Rafael,

A primeira questão foi solucionada com sua orientação. A segunda, referente ao cache, não funcionou apesar de eu ter zerado os TTL. Só foi funcionar quando passou das 24 horas da alteração que eu fiz. Não há como forçar a atualização do cache? Uma outra coisa é que a tela não esta renderizando corretamente.

  1. A aplicação sendo chamada diretamente com o DNS público: http://ec2-34-239-143-146.compute-1.amazonaws.com:8080/web-manager/login.xhtml

  2. A aplicação chamada com pelo CloudFront: https://www.arptec.ml/web-manager/login.xhtml

Esta é uma aplicação feita utilizando JSF com Primefaces. O que fazer?

Obrigado

Olá Antonio,

Desculpe pela demora, estou gravando um novo curso essa semana. Pelo que estive lendo na documentação da Amazon, é possível remover completamente o cache do CloudFront com os seguintes passos:

  1. Vá até o painel de console do CloudFront https://console.aws.amazon.com/cloudfront/.

  2. Escolha a distribuição e clique em Distribution Settings

  3. Selecione a aba Invalidations e escolhe a opção Create Invalidation. Para invalidar todos os objetos, tente colocar a opção : /* e clique em Invalidate

Segue link da documentação da Amazon com maiores detalhes: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidating-objects-console

Abs

Olá Rafael,

A questão do cache aparentemente ficou resolvida, persiste porém o da renderização.

  1. A aplicação sendo chamada diretamente com o DNS público: http://ec2-34-239-143-146.compute-1.amazonaws.com:8080/web-manager/login.xhtml

  2. A aplicação chamada com pelo CloudFront: https://www.arptec.ml/web-manager/login.xhtml

Esta é uma aplicação feita utilizando JSF com Primefaces. O que fazer?

Obrigado

Olá Antonio,

Estive fazendo algumas pesquisas, mas não ainda não consegui encontrar o motivo do conteúdo estático não estar sendo carregado.

Teria duas sugestões no momento, a primeira seria de colocar todo o conteúdo estático em um Bucket no S3 os arquivos serão acessados por um link fornecido pela Amazon, no seu projeto, você alteraria href para referenciar a esse link do S3.

A segunda alternativa, caso o Cloudfront não seja estritamente necessário, seria no Route 53 alterar o domínio para acessar diretamente a instância, na sequência para não ficar a porta 8080, poderia ser feito a configuração no iptables para a porta 80.

Abs

Oi Rafael,

Eu optei por enquanto de tirar o CloudFront da jogada, porém não estou conseguindo mapear o domínio diretamente para o host. Acho que não existe essa possibilidade pois ao informar o domínio público disponibilizado no EC2 dá um erro.

The record set could not be saved because: - Alias Target contains an invalid value.

solução!

Oi Antonio,

Desculpe, quando disse diretamente na instância, quis na verdade dizer no load balancer diretamente conectado a instância, pensei que havia escrito essa parte do load balancer, perdão, erro meu. Usando a opção do Alias para o Load Balancer não deverá aparecer essa mensagem de erro.

Para conectar diretamente na instância EC2 mesmo, existe a alternativa de colocar a opção Alias em No e colocar no campo Value diretamente o endereço IP do servidor, mas esse procedimento tem um porém, se o servidor for reinicializado, outro endereço IP poderá ser alocado ao servidor e com isso o domínio não acessaria mais o servidor EC2.

Resolvido , professor.

Muito grato, Um abraço