Como definir o valor $ https usando o HttpMapModule no nginx

2

Estou tentando adicionar o seguinte bloco em http context para definir $https com base em $http_x_forwarded_proto :

map $http_x_forwarded_proto $https {
    default off;
    https on;
}

Mas o teste de configuração falha dizendo:

nginx: [emerg] the duplicate "https" variable in /etc/nginx/nginx.conf:36
nginx: configuration file /etc/nginx/nginx.conf test failed
    
por Naveed 03.01.2013 / 00:44

1 resposta

5

Há uma mudança na versão 1.1.11, onde a variável $ https se tornou uma variável interna.

Como agora é um interno, e a solicitação em si não é sobre HTTP, a melhor maneira é passar essa informação para o manipulador fastcgi. Aqui está o que eu tenho no meu nginx.conf (via include)

map $http_x_forwarded_proto $fastcgi_https {
  default '';
  https on;
}

Então, eu tenho o código abaixo no bloco de localização, manipulando o fastcgi_pass

fastcgi_param HTTPS $fastcgi_https;
fastcgi_param SERVER_PORT $http_x_forwarded_port;
    
por 23.04.2013 / 08:37

Tags