我正在尝试使用 Nginx 和 Tomcat 进行 ssh 卸载。我的设置是:浏览器 -(HTTPS)-> nginx -> (http/https) -> tomcat
我已经设置 nginx 在 x-forwarded-proto 标头中转发请求方案。
proxy_pass http://default_upstream;
add_header Set-Cookie "SRVGROUP=$group; path=/";
proxy_next_upstream error;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Host $http_host;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
proxy_set_header X-URI $uri;
proxy_set_header X-ARGS $args;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Scheme $scheme;
proxy_set_header Refer $http_refer;
proxy_redirect http:// $scheme://;
proxy_set_header Strict-Transport-Security "max-age=7200";
在 tomcat 上,我打印 X-Forwarded-Proto 标头,我总是得到 http。如果我更换
proxy_set_header X-Forwarded-Proto $scheme;
和
proxy_set_header X-Forwarded-Proto https;
一切正常。但我想使用 $scheme,因为并非我的所有页面都通过 https 提供。
寻找解决方案,或者是否有人以前遇到过同样的问题。