HTTPS header missing from single server

How can I make nginx set the HTTPS header in a single http/https
server? piwik with force_ssl=1 on apache goes into a redirect loop
because it doesn’t know SSL is on due to the nginx reverse proxy.
There is a piwik bug which references a similar problem and blames the
HTTPS header:

  • Grant

On Sat, Mar 09, 2013 at 09:51:02PM -0800, Grant wrote:

Hi there,

How can I make nginx set the HTTPS header in a single http/https
server?

What is “the HTTPS header”?

piwik with force_ssl=1 on apache goes into a redirect loop
because it doesn’t know SSL is on due to the nginx reverse proxy.

This sounds like one or more fastcgi_param key/value pairs are not set
the way your application wants them to be set.

Module ngx_http_fastcgi_module is how you set them. And it
includes an example with the $https variable, which is described in
Module ngx_http_core_module

The usual nginx directive inheritance rules apply, so you’ll want to add
your fastcgi_param line to the correct place – possibly just after you
include the external file.

f

Francis D. [email protected]

How can I make nginx set the HTTPS header in a single http/https
server?

What is “the HTTPS header”?

I meant to say HTTPS environment variable.

piwik with force_ssl=1 on apache goes into a redirect loop
because it doesn’t know SSL is on due to the nginx reverse proxy.

This sounds like one or more fastcgi_param key/value pairs are not set
the way your application wants them to be set.

Module ngx_http_fastcgi_module is how you set them. And it
includes an example with the $https variable, which is described in
Module ngx_http_core_module

I should have mentioned that I’m using proxy_pass. I was able to get
it working like this:

proxy_set_header X-Forwarded-Proto $scheme;

  • Grant