反代腾讯cos使用内网出现UserCnameInvalid问题解决

反代腾讯cos使用内网出现UserCnameInvalid问题解决

前言 最近网站打算把静态资源都搬回国内,包括图片。现在为了迁移方便,打算想使用的是腾讯的cos储存,正好halo有s3插件,刚好可以直接上传。但是没钱直接使用是个问题。 因此,我打算直接用腾讯云同地区轻量机子反代走内网,使用轻量机子的宽带出口,虽然速度没有直接用cos快(速度就是你轻量服务器的带宽)

前言

最近网站打算把静态资源都搬回国内,包括图片。现在为了迁移方便,打算想使用的是腾讯的cos储存,正好halo有s3插件,刚好可以直接上传。但是没钱直接使用是个问题。

因此,我打算直接用腾讯云同地区轻量机子反代走内网,使用轻量机子的宽带出口,虽然速度没有直接用cos快(速度就是你轻量服务器的带宽)。但是胜在便宜。(流量成本几乎为零,并且不用担心被刷)

问题

反代配置好halo上传后,发现可以正常上传文件,但是无法访问资源。

0507e958798435bf7f0c772b9044e8b4.png

查了很久,网上都没有答案。最后直接找到我之前配置过的反代配置发现是请求host的问题。

location ^~ / {
    proxy_pass https://xxxxxx.cos.ap-guangzhou.myqcloud.com; 
    proxy_set_header Host xxxxxx.cos.ap-guangzhou.myqcloud.com; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_set_header REMOTE-HOST $remote_addr; 
    proxy_set_header Upgrade $http_upgrade; 
    proxy_set_header Connection "upgrade"; 
    proxy_http_version 1.1; 
    add_header X-Cache $upstream_cache_status; 
}

这是修改后的反代设置,主要问题是proxy_set_header Host 之前是${host}也就是你当前的域名,但是这样是不可以的,将其修改成你cos的域名即可。

现在就可以看见,能够正常访问了。

271bd9e0e9b021de4c6e7c0f7daece5a.png