Proxy reverso para configuração do nginx para o subcaminho

1

Atualmente, tenho essa configuração para um proxy reverso no nginx

    server {
        listen 8888 default_server;

        root /usr/share/nginx/html;
        index index.html index.htm;

    location / {
        try_files $uri @proxy;
    }

    location = / {
        try_files $uri @proxy2;
    }

    location = /redirect.html {
        try_files $uri @proxy2;
    }

    location ~ /user/(.*)$ {
        try_files index.html @proxy2;
    }

    location @proxy2 {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:6079;
        max_ranges 0;
    }

    location @proxy {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:6081;
        max_ranges 0;
    }

    location = /websockify {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass http://127.0.0.1:6081;
    }

}

Meu problema é que eu tenho um URL do tipo http://example.com:8888/user/username e preciso redirecioná-lo para localhost:6079 . Infelizmente, o que está escutando na porta 6079 quer a URL sem a parte /user/username . No meu entender, quando tento usar essa configuração, recebo um frasco gerado (o aplicativo na porta 6079 é um aplicativo de frasco). Eu tentei praticamente tudo por toda a tarde, incluindo a reescrita do URL, codificando o URL real e outros truques da documentação do nginx, mas não consegui encontrar uma solução de trabalho.

Observe que, se eu me conectar diretamente ao link , o aplicativo funciona bem, então parece ser mesmo essa configuração nginx.

Editar :

Eu tentei modificar como sugerido e adicionar o / na linha proxy_pass proxy2, mas ele reclama como explicado aqui

link

Quanto aos logs, não vejo nada inesperado, exceto que se eu conectar ao localhost: 8888 / user / username, ele mostrará um 404, e se eu me conectar ao localhost: 8888, eu vejo o aplicativo do frasco.

Lembre-se de que o nginx está em uma imagem de encaixe, mas eu navego na máquina host, portanto, 127.0.0.1 no nginx é a instância do docker e, quando eu navego no 127.0.0.1, é a máquina host e a porta através da ponte que eu configurei quando iniciei o container.

Editar 2

Logs não contam muito.

172.17.42.1 - - [10/May/2016:22:14:05 +0000] "GET /user/sborini/redirect.html?width=1375&height=695 HTTP/1.1" 200 212 "http://localhost:8888/user/sborini/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
172.17.42.1 - - [10/May/2016:22:14:05 +0000] "GET /user/sborini/vnc_auto.html HTTP/1.1" 404 166 "http://localhost:8888/user/sborini/redirect.html?width=1375&height=695" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
172.17.42.1 - - [10/May/2016:22:14:57 +0000] "GET /user/sborini/vnc_auto.html HTTP/1.1" 404 209 "http://localhost:8888/user/sborini/redirect.html?width=1375&height=695" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
172.17.42.1 - - [10/May/2016:22:14:58 +0000] "GET /user/sborini/vnc_auto.html HTTP/1.1" 404 209 "http://localhost:8888/user/sborini/redirect.html?width=1375&height=695" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"
172.17.42.1 - - [10/May/2016:22:18:59 +0000] "GET / HTTP/1.1" 200 454 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0"

Veja como obtenho algo se me conectar à entrada simples / Em todo caso, eu tentei um caso simplificado:

server {
    listen 8888 default_server;

    root /usr/share/nginx/html;
    index index.html index.htm;

location = /user/sborini/ {
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:5555;
    max_ranges 0;
}

}

e um netcat ouvindo 5555. Eu recebo um gateway ruim. Investigando.

    
por Stefano Borini 10.05.2016 / 22:38

1 resposta

0

Adicione uma barra à sua diretiva proxy_pass.

proxy_pass http://127.0.0.1:6079/;

Fonte

Documentação

Dedos cruzados cruzaram as obras ... levei 30 segundos no Google para resolver isso.

    
por 10.05.2016 / 22:49

Tags