Estou tentando fazer um redirecionamento simples trabalhando no meu servidor nginx. Estou recebendo o código de resposta 302 de volta, mas o cabeçalho Location
não está definido. O que estou perdendo?
Meu caso mínimo (com uma imagem codificada):
location /redirectme {
return 302 https://www.google.com/logos/doodles/2016/childrens-day-2016-brazil-5739205150900224-hp2x.jpg;
}
Meu caso de uso real (redirecionar o usuário para o URL passado para o parâmetro de consulta url
):
location /redirectme {
return 302 $arg_url
}
Outra configuração que tentei (configurando manualmente o cabeçalho de localização):
location /redirectme {
add_header Location $arg_url;
return 302;
}
Nenhum desses trabalhos realmente redireciona o cliente para o novo URL (retornando apenas o 302). O resto do meu aplicativo da Web funciona muito bem, mas não esse redirecionamento. Se isso fizer diferença, estou trabalhando em um bloco ssl server {...}
. Alguma ideia? Obrigado!
----- UPDATE ------
Aqui está o bloco server
inteiro ...
server {
listen 443;
server_name myserver.com;
access_log /path-to/myserver.com-ssl.access.log;
ssl on;
ssl_certificate /path-to/myserver.com.crt;
ssl_certificate_key /path-to/myserver.com.key;
ssl_client_certificate /path-to/clientkey.pem;
ssl_verify_client on;
ssl_verify_depth 1;
keepalive_timeout 5;
root /srv/www/myserver/public/;
location /redirectme {
return 302 $arg_url;
}
location / {
try_files $uri/index.html $uri/index.htm @unicorn;
}
location @unicorn {
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-CLIENT-VERIFY $ssl_client_verify;
proxy_redirect off;
proxy_read_timeout 60;
proxy_send_timeout 60;
# If you don't find the filename in the static files
# Then request it from the unicorn server
if (!-f $request_filename) {
proxy_pass http://unicorn_myserver.com;
break;
}
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /srv/www/myserver/public/;
}
}
E a resposta de fazer curl -i
:
HTTP/1.1 302 Found
Content-Type: application/json
Content-Length: 0
Connection: keep-alive
Date: Fri, 14 Oct 2016 18:37:32 GMT
x-amzn-RequestId: 44e865b2-923d-11e6-a60a-5f6291eee9a8
X-Cache: Miss from cloudfront
Via: 1.1 aa89533ad2ec5e0edba466c9920bd000.cloudfront.net (CloudFront)
X-Amz-Cf-Id: 7dzQ9JQK380hFD-nFyJxm6mIWT5D4mWzvCbSAhDaa-pHwpF4oZHszw==
Também pode ser relevante (não entendo como, mas talvez) que tenho o Amazon API Gateway parado na frente de minhas solicitações, fazendo proxy diretamente para o servidor (note: o ssl_client_certificate /path-to/clientkey.pem;
está configurado para aceitar somente solicitações do API Gateway).