From ee55403cd4a6255f275b0f39cbc19f03accd29ef Mon Sep 17 00:00:00 2001 From: Ben Darnell Date: Mon, 8 Nov 2010 10:54:50 -0800 Subject: [PATCH] Support X-Forwarded-Proto in addition to X-Scheme --- tornado/httpserver.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tornado/httpserver.py b/tornado/httpserver.py index d1373283..42b5c866 100644 --- a/tornado/httpserver.py +++ b/tornado/httpserver.py @@ -437,7 +437,11 @@ class HTTPRequest(object): # Squid uses X-Forwarded-For, others use X-Real-Ip self.remote_ip = self.headers.get( "X-Real-Ip", self.headers.get("X-Forwarded-For", remote_ip)) - self.protocol = self.headers.get("X-Scheme", protocol) or "http" + # AWS uses X-Forwarded-Proto + self.protocol = self.headers.get( + "X-Scheme", self.headers.get("X-Forwarded-Proto", protocol)) + if self.protocol not in ("http", "https"): + self.protocol = "http" else: self.remote_ip = remote_ip self.protocol = protocol or "http"