Nginx e Tomcat Proxy reverso não funciona

1

Eu tive problemas para configurar o Nginx e o Tomcat Server no Cent OS.

Aqui está o nginx.conf :

server {
    listen       80;
    server_name  subdomain.test.com;
    root         /usr/local/tomcat/webapps/webapp_folder;
    index        index.html index.htm index.jsp;

    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

    location ~ \.jsp {
       proxy_pass      http://127.0.0.1:8080;
    }
}

Quando visito subdominio.test.com , recebo uma caixa de diálogo de download em vez do conteúdo de index.jsp.

Além disso, posso visitar o site normalmente acessando ip_address: 8080 / webapp_folder .

Eu também tentei alterar o URL http://127.0.0.1:8080 para http://127.0.0.1:8080/webapp_folder , mas quando iniciei o Nginx, recebi a seguinte mensagem de erro:

Reiniciando o daemon nginx: nginxnginx: [emerg] "proxy_pass" não pode ter a parte URI na localização dada pela expressão regular, ou dentro da localização nomeada, ou dentro da instrução "if" ou dentro do bloco "limit_except" em / etc / nginx / nginx.conf: 145

E eu também tentei isso:

server {
    listen       80;
    server_name  subdomain.test.com;
    root         /usr/local/tomcat/webapps/webapp_folder;
    index        index.html index.htm index.jsp;

    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

    location / {
       proxy_pass      http://127.0.0.1:8080/webapp_folder;
    }
}

Mas ainda não está funcionando.

Você pode me ajudar com o problema? Thx muito!

    
por Haozhe Xie 31.12.2014 / 17:26

1 resposta

0

O diálogo de download pode aparecer porque o jsp não está definido em /etc/nginx/mime.types - embora eu suponha que um proxy reverso não altere o tipo de mime fornecido pelo Tomcat.

Assumo que o WebApp está funcionando corretamente quando você visita o aplicativo na porta 8080? Se sim, veja o que acontece quando você passa todas as solicitações para o Tomcat, assim:

server {
    listen       80;
    server_name  subdomain.test.com;
    root         /usr/local/tomcat/webapps/webapp_folder;
    index        index.html index.htm index.jsp;

    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_pass         http://localhost:8080;

}
    
por 02.01.2015 / 13:45