Olá, isso deve ser bastante fácil de responder para qualquer administrador do sistema, o problema é que eu não sou administrador do servidor, mas eu tenho que completar esta tarefa, estou muito perto, mas ainda não consegui fazê-lo. Aqui está o que quero dizer, tenho duas instâncias de tomcat em execução em machine1
e machine2
. As pessoas geralmente acessam essas pessoas visitando os URLs:
http://machine1:8080/appName
http://machine2:9090/appName
O problema é que quando eu configuro o nginx com nome de domínio, por exemplo, domain.com
, nginx envia solicitações para http://machine1:8080/
e http://machine2:9090/
em vez de http://machine1:8080/
e http://machine2:9090/appName
Aqui está minha configuração (muito básica, como se pode notar):
upstream backend {
server machine1:8080;
server machine2:9090;
}
server {
listen 80;
server_name www.mydomain.com mydomain.com;
location / {
# needed to forward user's IP address to rails
proxy_set_header X-Real-IP $remote_addr;
# needed for HTTPS
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_max_temp_file_size 0;
proxy_pass http://backend;
} #end location
} #end server
Quais alterações devo fazer para fazer o seguinte:
- quando o usuário visita mydomain.com
- transfira-o para machine1:8080/appName
ou machine2:9090
Obrigado
Atualização de perguntas:
Eu acho que isso é complicado para o primeiro temporizador como eu. Eu vou usar apenas um servidor de instância em vez de dois, aqui está minha configuração:
server {
listen 80;
server_name www.mydomain.com mydomain.com;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080;
}
}
O problema:
Quando visito mydomain.com
, recebo a conhecida página do tomcat If you're seeing this page via a web browser, it means you've setup Tomcat successfully. Congratulations!
.
Se eu for manualmente para mydomain.com/myApp
, tudo funcionará como esperado.
Pergunta:
Existe uma maneira de eu configurar isso para fazer o seguinte:
Quando eu digito na barra de endereço mydomain.com
que eu sou transferido para mydomain.com/myApp
Ou eu estou completamente fora neste caso. Existe uma maneira mais fácil de fazer isso?
Atualização II:
Quando altero a configuração para:
proxy_pass http://localhost:8080/appName/;
O site parece estar funcionando, mas na verdade não funciona. Links não funcionam, o css / js não carrega.