今天项目上遇到一个问题
http://aa:8088去请求http://cc文件服务:9000的pdf文件,一直无响应,由于自己不懂nginx同事帮忙配的配置。然后我就对其产生了深深的怀疑。
修改之前的配置:
location /test/ {
proxy_pass http://cc文件服务:9000/test/;
proxy_set_header Host $http_host;
}
查看nginx日志,发现状态码403我顿悟了,没权限说明请求头信息蹦的一下没了
然后我就查这个配置到底是干啥的
当Host设置为
h
t
t
p
h
o
s
t
时
,
不
会
改
变
请
求
头
的
值
,
所
以
说
请
求
头
还
是
h
t
t
p
:
/
/
a
a
的
请
求
头
信
息
;
而
我
转
发
给
c
c
的
是
一
个
预
签
名
的
链
接
,
请
求
头
需
要
携
带
信
息
不
然
访
问
没
有
权
限
;
所
以
真
相
就
是
我
同
事
想
搞
我
当
H
o
s
t
设
置
为
http_host时,不会改变请求头的值,所以说请求头还是http://aa的请求头信息; 而我转发给cc的是一个预签名的链接,请求头需要携带信息不然访问没有权限; 所以真相就是我同事想搞我 当Host设置为
httphost时,不会改变请求头的值,所以说请求头还是http://aa的请求头信息;而我转发给cc的是一个预签名的链接,请求头需要携带信息不然访问没有权限;所以真相就是我同事想搞我当Host设置为proxy_host时,则会重新设置请求头信息
location /test/ {
proxy_pass http://cc文件服务:9000/test/;
proxy_set_header Host $proxy_host;
}



