您可以使用下面的代码示例来变更您的应用程序以支持此更改。此示例使用 AWS CLI 命令来更新 Elastic Load Balancer (ELB) 的设置,以便在 HTTP 响应头中包含 X-Forwarded-Proto。
aws elb create-load-balancer-policy \
--load-balancer-name YOUR-ELB-NAME \
--policy-name enable-proxy-protocol \
--policy-type-name ProxyProtocolPolicyType \
--policy-attributes AttributeName=ProxyProtocol,AttributeValue=true
请注意,在执行此命令之前,请替换 YOUR-ELB-NAME 为您的 Elastic Load Balancer 名称。
接下来,在您的应用程序中,您需要相应地更新代码以读取 X-Forwarded-Proto 头并将其用于 HTTPS 判断。以下示例使用 Python 和 Flask 框架,并假设您已经将 HTTPS 功能添加到您的应用程序。
from flask import Flask, request
app = Flask(__name__)
@app.before_request
def before_request():
if request.headers.get("X-Forwarded-Proto") == "https":
request.environ["wsgi.url_scheme"] = "https"
@app.route("/")
def hello():
return "Hello, World!"
在此示例中,before_request() 函数检查 X-Forwarded-Proto 头的值,如果为 https,则更新 request.environ 字典中的协议名称,以便 Flask 框架进行 HTTPS 响应。这可以确保您的应用程序正确响应 HTTPS 客户端。