nginx中$host、$http_host和$proxy_host区分

若按主机域名分配转发的话,像这样:

切记:if后面的空格,还有条件语句操作符前后的空格。

location /socket.io {
  if ($http_host = 'server1.xxx.com') {
    proxy_pass http://168.168.168.2:1001;
  }
  if ($http_host = 'server2.xxx.com') {
    proxy_pass http://168.168.168.2:1002;
  }
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "Upgrade";
  proxy_set_header X-Real-IP $remote_addr;
}

$host 浏览器请求的ip或域名,不显示端口
$http_host 端口存在则显示(忽略80、443) 浏览器请求的ip或域名和端口号
$proxy_host 默认80端口不显示,其它显示,被代理服务的ip或域名和端口号

参考:

https://blog.csdn.net/yihanzhi/article/details/107002881

https://blog.csdn.net/liuxiao723846/article/details/83147792

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注