当设置Nginx的配置文件时,$host和$http_upgrade是什么意思?

J H*_*J H 8 nginx

当为 nginx 设置一个应该运行使用 WebSockets 的网站的配置文件时,所有教程都说要使用这个:

location /wsapp/ {
    proxy_pass http://websiteName;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
}
Run Code Online (Sandbox Code Playgroud)

$host 和 $http_upgrade 到底是什么?它们是需要替换的伪变量吗?

Ter*_*nen 7

$http_upgrade被带有 name 的 HTTP 标头替换Upgrade

$host或者是:

  • 请求行中的主机名
  • Host 请求标头字段中的主机名
  • 与请求匹配的服务器名称

nginx 将这些变量替换为实际内容。nginx 变量的完整列表在http://nginx.org/en/docs/varindex.html中列出