У меня есть обратный прокси-сервер Nginx, перенаправляющий на сервер lighttpd на той же машине.Этот обратный прокси работает на HTTPS, поэтому я хочу сказать lighttpd, что HTTPS используется в качестве протокола вместо HTTP.Вот моя конфигурация Nginx.
server {
server_name mydomain.com;
merge_slashes off;
rewrite ^(.*?)//+(.*?)$ $1/$2 permanent;
location / {
proxy_pass http://localhost:8088/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Ssl on;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
# SSL settings
}
server {
if ($host = mydomain.com) {
return 301 https://$host$request_uri;
}
listen 80;
listen [::]:80;
}
На сервере lighttpd запущено приложение python, использующее модуль web.py , но возвращаемое значение web.ctx.protocol
по-прежнему равно HTTP когда это должно быть HTTPS .Похоже, lighttpd игнорирует заголовок X-Forwarded-Proto , отправленный Nginx.
Что я делаю не так?Есть ли дополнительные настройки, которые нужно сделать?Спасибо.