nginx proxy_pass adiciona o número da porta ao URL

1

Eu tenho um aplicativo padrão do Rails implantado no Heroku. Eu estou usando buildpacks personalizados para instalar o nginx para que eu possa criar algumas regras de reescrita e um proxy reverso. Eu tenho principalmente trabalhando, salvo por um problema.

Eu tenho a seguinte definição location para proxy passar todos os URLs começando com / blog / para outro aplicativo.

location ~* ^/blog/?(.*) {
  set $forward_host       'another.app.com';
  set $url_full           '$1';

  resolver                8.8.8.8 valid=300s;
  resolver_timeout        10s;

  # always add trailing slash
  rewrite ^([^.]*[^/])$   $1/ permanent;

  index index.html;

  proxy_hide_header       Set-Cookie;
  proxy_set_header        X-Real-IP $remote_addr;
  proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header        X-Scheme $scheme;
  proxy_set_header        Host $forward_host;
  proxy_ignore_headers    "Set-Cookie";
  proxy_buffering         off;
  proxy_intercept_errors  on;
  proxy_redirect          off;
  proxy_pass              http://$forward_host/$url_full;
}

Eu quero que todas as minhas URLs terminem com uma barra final, e é por isso que adicionei:

rewrite ^([^.]*[^/])$   $1/ permanent;

Tudo funciona bem quando eu clico:

http://nginx-playground.herokuapp.com/blog/

Mas quando eu não tenho a barra final e a regra de reescrita entra em ação, o proxy_pass adiciona o número da porta Heroku interna ao url e se parece com isso:

http://nginx-playground.herokuapp.com:27348/blog/

Eu tentei muitas coisas diferentes, como configurar proxy_redirect, mas não consegui descobrir.

Aqui está um link para o projeto do github do aplicativo de exemplo que eu configurei. Você pode bifurcar / clonar e tentar implantar no heroku para ver o que acontece por si mesmo.

link

Você precisará das seguintes variantes ENV se fizer:

BUILDPACK_URL: https://github.com/ddollar/heroku-buildpack-multi.git
LANG:          en_US.UTF-8
RACK_ENV:      production

Este é o artigo do blog que usei como ponto de partida: link

Qualquer ajuda ou pista seria muito apreciada.

    
por Ramin B. 16.09.2015 / 23:06

0 respostas