Glassfish - Virtual Server

7 respostas Resolvido
java
S

Bom dia a todos, eu estou tentando deixar minha aplicação disponível na web, eu criei um dns que aponta para meu IP externo e já configurei o modem pra apontar para a porta do http-listener-1 (8080) glassfish, até ai tudo bem pois quando entro no navegador e digito “meudns.com.br” ele me redireciona para o index.jsf que está no docroot do glassfish, ou seja, não há problema aqui.

Quando eu digito “localhost:8080/meuApp” a aplicação funciona normalmente, mas o que eu preciso fazer agora no virtual server pra quando eu digitar “meudns.com.br” ele apontar para minha aplicação?

7 Respostas

R
Solucao aceita

Ao implantar:

Marque o virtual_server e defina o contexto, lembrando que o contexto depende de como vc desenvolveu a aplicação, podendo ser / ou /seuApp, testa
Depois de implantar, no virtual_server vc precisa definir sua aplicação padrão:

*Toda vez que DESIMPLANTAR a aplicação padrão deve ser reconfigurada no virtual_server após implantar. Caso faça REDEPLOY não precisa.

E vc precisa mudar pra porta 80 caso não queira colocar :8080 no final do domínio.

S

Opa, muito obrigado @Rodrigo_Void funcionou um pouco doido no inicio pois eu tinha que recarregar a página (na primeira vez ele ia pro docroot, e na segunda ia pra minha aplicação), não sei como mas acabei acertando…

Agora esbarrei em outra coisa que eu gostaria de fazer… Eu gostaria de usar o mesmo servidor tanto para desenvolvimento quanto para execução… E nesse caso eu teria 2 aplicações nele, uma seria “meuApp-teste” e “meuApp-live”. O “meuApp-teste” seria “deployed” pelo Netbeans no padrão habitual usando a pasta, e o “meuApp-live” sofreria um deploy manual, mas eu gostaria de deixar as duas online, sendo assim, as duas receberiam requisições na mesma porta (8080) mas seriam acessadas por endereços diferentes “meuApp.com.br” e “meuApp-teste.com.br” como eu faço isso?

Eu imagino que eu deveria criar um novo virtual_server, mas como eu diferencio o dns que acessou para escolher uma ou outra?

R

Tem algumas formas de fazer, tipo implanta normal com /seuApp ai o de producao fica em /
Tambem pode usar outro virtual_server e com porta diferente.
Também pode criar um domínio novo (com portas diferentes)
No geral não recomendo usar a mesma instancia do glassfish para produção e desenv, caso tiver que reiniciar(oq é bem comum) o de produção cai.

É que geralmente se adotam várias políticas para garantir um maior uptime em um sistema e usar o servidor de produção pra testes não é uma delas.

S

Eu vou usar um único computador tanto para desenvolver quanto para executar, não posso rodar o server em um e desenvolver em outro =*(, tenho recursos limitados e a aplicação é bem simples, e minha rede é roteada então quando é digitado “meuApp.com” o DNS resolve o endereço pra 100.97.200.64:80 certo? então no modem eu pego essa requisição e aponto para 192.168.25.87:8080 (roteamento)… Eu vi que tem jeito de usar várias aplicações na mesma porta diferenciando pelo DNS que requisitou, só não to entendendo como…

Pelo que entendi é no campo “Hosts” do virtual_server e o meu atualmente está assim: ${com.sun.aas.hostName} só não sei o que colocar neste campo no virtual_server do App1 e do App2.

Acho que pergunta toda se resume em: como colocar duas aplicações no mesmo servidor? (pois não consigo aceitar que se eu tenho um app na porta 80 não posso ter outro app na mesma porta, e também não acredito que eu seria obrigado a digitar “meuEndereço.com/App1” e “meuEndereço.com/App2” pra diferenciar… Deve ter uma forma de digitar “App1.com” e “App2.com”).

R

Poise, ai já foge um pouco da minha alçada

S

Consegui fazer!

Os dois virtual_server devem ter o mesmo listener, no meu caso na porta 8080, as duas aplicações estão na raiz (no meu caso), cada uma tem seu virtual_server com o campo “Hosts” apontando para o seu DNS, então:

Listener1___ virtual_server1 - app1("/") - [Hosts=www.app1.com"]
|___ virtual_server2 - app2("/") - [Hosts=“www.app2.com”]

Nesse campo é possível tambem, atender requisições do localhost é só separar por virgula de onde é possivel ser solicitado assim: ${com.sun.aas.hostName},www.app1.com

Então: as duas aplicações estão na raiz, e respondem na mesma porta e o que filtra o endereço é o campo Hosts dentro do virtual_server

Só não sei quem o servidor vai atender caso as duas tenham acesso via localhost, na mesma porta, e no mesmo contexto…

R

Mto bom cara, eu tbm tava querendo saber como faz pra coloca varios dominios sobre o mesmo server e na mesma porta. Ainda não precisei fazer, mas vou ter que montar um esquema assim em breve. Vlw pelo feedback tmj

Criado 11 de outubro de 2017
Ultima resposta 13 de out. de 2017
Respostas 7
Participantes 2