Localização HTTP incorreta: cabeçalho com nginx proxying couchdb

1

Estou usando o nginx como um proxy reverso para o CouchDB. Gostaria de usar um prefixo para o proxy, por exemplo http://[ip]:8080/proxy/testdb - > %código%. Estou recebendo http://localhost:5984/testdb cabeçalhos na resposta HTTP que estão fazendo com que meu cliente HTTP seja redirecionado e interrompido. Como posso consertar minha configuração do nginx?

Meu bloco do servidor nginx tem esta aparência:

server {
  listen 8080;
  root /var/www/proxy;
  index index.php index.html index.htm;
  location /proxy {
    rewrite /proxy/(.*) /$1 break;
    proxy_pass http://127.0.0.1:5984;
    proxy_redirect off;
#    proxy_set_header Host $host;
#    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Exemplo de resposta HTTP:

HTTP/1.1 201 Created
Server: nginx/1.6.2
Date: Tue, 13 Jan 2015 01:09:00 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 74
Connection: close
Location: http://192.168.0.100/testdb/2134922387
ETag: "1-f355543f12ede9fdc421b4c3ca06c1eb"
Cache-Control: must-revalidate

Com base nisso, o cliente HTTP tenta redirecionar para Location: , o que gera um erro 404. (Uncommenting as duas linhas de configuração comentadas não parecem mudar nada).

Exemplo de comando para produzir esses cabeçalhos:

curl -v -X POST -H "Content-Type: application/json" -d "{\"_id\":\"2134922387\",\"test\":\"good\"}" http://192.198.0.100:8080/proxy/testdb

Alguma idéia de como corrigir esse problema http://192.168.0.100/testdb/2134922387 ?

Editado para adicionar: parece que mudar o Location: para proxy_redirect está ajudando.

    
por tetech 13.01.2015 / 02:26

0 respostas