proxy_set_header Host $host 这个设置的目的是什么呢?

来源:7-17 nginx配置

WhitePaper

2020-12-01

老师你好,我想问一下,proxy_set_header Host $host 这个设置的目的是什么呢?如果不设置会有什么后果?

根据我自己的现在查到资料,proxy_set_header Host 是设置转发的请求的头部中Host字段的值的,如果不设置,那么默认是$proxy_host 也就是 proxy_server中的值。如果设置成$host, 那么就会是server_name 设置的值(nginx的地址)。

可是为什么要将host改成nginx的地址呢?如果在nodejs中收到的请求,header中host字段,和请求的nodejs的地址不一致,不是才应该会有问题么?比如,被过滤了啥的?

谢谢

写回答

2回答

双越

2020-12-01

如你所说,如果 nodejs 中用不到 host ,其实 proxy_set_header 设置不设置,无所谓。


这个 nginx 的配置就是我日常自己的配置拷贝过来了,由于我们课程中没有专门用到 host 的地方,所以我也没有特别关心这里。

还是你比较细心,看到了这个问题。其实本课程这里,我们可以去掉这个配置。

1
1
WhitePaper
非常感谢!
2020-12-02
共1条回复

小琥珀007

2022-02-03

如果不设置,那么默认是$proxy_host 也就是 proxy_server中的值。如果设置成$host, 那么就会是server_name 设置的值(nginx的地址)。

同学,你这儿貌似说反了,不设置$host才是nginx的地址。

0
0

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4051 学习 · 2006 问题

查看课程