Proxy sub.domain.com/link1 - 10.1.1.1:8080/someotherlink1

2

Tentando fazer um proxy simples de sub.domain.com/link1 para outro servidor 10.1.1.1:8080/someotherlink1 .

Este é o contexto do meu servidor: (eu modifiquei o nginx.conf padrão)

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  sub.domain.com;
    root         /;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location /link1 {      
        proxy_pass http://10.1.1.1:8080/link2
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

'

mas visitar uma página da Web é apenas carregar a página do gateway ruim do nginx 502.

Erro no log é:

2017/03/15 22:04:27 [crit] 8647#0: *11 connect() to 10.1.1.1:8080 failed (13: Permission denied) while connecting to upstream, client: 112.xxx.xxx.xxx, server: sub.domain.com, request: "GET /link1/ HTTP/1.1", upstream: "http://10.1.1.1.1:8080/link2/", host: "sub.domain.com"

O que é um pouco estranho é o GET /link1/ - como este não deve ser o link no URL upstream final - ele não deve estar tentando obter este link.

O que estou fazendo de errado?

    
por Jason 15.03.2017 / 13:24

1 resposta

0

Você não passa o URI na diretiva proxy_pass , você precisa primeiro reescrever ou redirecionar, em seguida, passá-lo para o proxy, por exemplo:

location /link1 {
  return 301 $scheme://$http_host/link2$args;
}

location /link2 {
  proxy_pass http://10.1.1.1:8080;
}
    
por 23.08.2017 / 19:32

Tags