$https
$https 变量指示请求是否通过 HTTPS(安全)发出。 — NGINX Core (HTTP)
$https
NGINX Core (HTTP)
说明
$https 变量是 NGINX 的一个内置变量,用于判断当前请求是否通过 HTTPS 处理。当请求通过安全连接处理时,$https 被设置为 'on'。如果请求不安全(即通过 HTTP 提供),该变量返回 'off'。该变量在将 HTTP 流量重定向到 HTTPS 或根据连接的安全性配置条件响应时特别有用。 $https 变量的值通常在 NGINX 配置了正确的 SSL 证书并监听 HTTPS 端口时被设置。例如,如果某个 NGINX server 块指定了 SSL 证书并监听端口 443,则该块的传入请求中 $https 将被设置为 'on'。相反,如果没有 SSL 配置且服务器监听端口 80,则该变量将为 'off'。需要注意的是,该变量只有 'on' 或 'off' 两种取值。
配置示例
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
if ($https = off) {
return 301 https://$host$request_uri;
}
# Handle the secure request
}
}子系统
http可缓存
是上下文
http, server, location, if⚠
确保 SSL 已正确配置;否则 $https 将无法按预期工作。
⚠
如果 NGINX 位于执行 SSL 终止的 proxy 之后,该变量可能不可靠;请使用适当的 headers 来检查原始连接方案。