Proxy reverso Nginx com o Wildfly

1

Temos um URL www.abc.com que deve apontar para o link em execução no wildfly-8.2.0.Final . Temos outro URL www.def.com que queremos apontar para o link na mesma instalação do wildfly.

Se usarmos:

server {
  listen       IP:80;
  server_name  www.abc.com;
    location / {
        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_set_header  X-Forwarded-Proto $scheme;
        proxy_pass http://IP:8080/;
    }
}

Isso funciona e nos permite reverter o proxy www.abc.com para o link , o que significa que recebemos a página padrão do Wildfly. Isso não nos ajudará, já que temos vários URLs que precisam ser convertidos em proxy reverso para diferentes aplicativos no wildfly.

Isso não funcionou.

server {
  listen       IP:80;
  server_name  www.abc.com;
    location / {
        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_set_header  X-Forwarded-Proto $scheme;
        proxy_pass http://IP:8080/app1/;
    }
}

Isso não funcionou.

server {
  listen       IP:80;
  server_name  www.abc.com;
    location / {
        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_set_header  X-Forwarded-Proto $scheme;
        proxy_pass http://IP:8080/;
        root /var/www/www.abc.com/public_html;
        index  index.html;
    }
}

O index.html se parece com:

<html>
<head>
<meta http-equiv="Refresh" content="0;url=/app1/index.html">
<title>Index Redirect</title>
</head>
</body>
</html>

Qualquer sugestão apreciada.

    
por hillel 05.11.2015 / 04:38

1 resposta

1

Eu tenho algo muito parecido com isso, embora meu back-end seja o JBoss, não o Wildfly. Na parte relevante, pulando minha configuração SSL:

www1.example.com:

server {
    listen IP:80;
    server_name www1.example.com;
    location / {
        location /app1 {
            proxy_pass http://IP:8080/app1$request_uri;
            proxy_redirect http://IP:8080 http://www1.example.com;
            # proxy_set_header directives as needed
        }
    }
    location = / {
        return 301 http://www1.example.com/app1
    }
}

www2.example.com

# Like www1, but server_name www2.example.com and proxy paths set for app2.

Eu não tenho ideia se isso pode funcionar enquanto oculto o caminho do aplicativo do mundo externo, mas suspeito que seja simplesmente movendo todas as diretivas de proxy para location / e omitindo location = / {}

    
por 05.11.2015 / 16:56