nginx proxy_pass usando subpasta

6

ok, essa tarefa deve ser simples, mas eu não consigo fazer funcionar. Eu gostaria de ter uma subpasta após o meu nome de domínio (na verdade, após o IP desse nome de domínio), que redireciona para uma porta específica no mesmo servidor. Essencialmente, eu quero me livrar de ter que usar muitas portas.

Aqui está minha configuração nginx para isso

server {
    listen 80;

    index index.html index.htm index.nginx-debian.html index.php;

    server_name aaa.bbb.ccc.ddd;

    location ^~ /app2 {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://aaa.bbb.ccc.ddd:8001;
    }
}

Portanto, ao acessar o aaa.bbb.ccc.ddd / app2, gostaria que isso fosse resolvido para o link .

Isso pode ser possivelmente tão complicado. O que estou perdendo aqui?

Obrigado Pat

    
por pAt84 27.07.2016 / 20:46

1 resposta

7

Como você marcou isso como uma pergunta de proxy reverso, presumo que você queira fazer o proxy da solicitação para que o usuário veja apenas http://aaa.bbb.ccc.ddd/app2 URL em seu navegador.

Você pode alterar seu bloco location para isso:

location ~/app2(.*)$ {
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;
    proxy_pass http://aaa.bbb.ccc.ddd:8001$1;
}

Aqui, capturamos a parte da URI após a variável /app2 to $1 e a usamos na diretiva proxy_pass .

    
por 27.07.2016 / 22:32