18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 建站知识 > 国外域名国内vps使用方法

国外域名国内vps使用方法

时间:2023-02-08 13:48:01 | 来源:建站知识

时间:2023-02-08 13:48:01 来源:建站知识

一、为什么有这个需求

场景是,国外域名+国内vps ,项目需要频繁的更换域名,但是服务不需要变更。 所以会选择国外便宜的域名使用,降低成本选择域名的方式也多。比如GoDaddy ,这个需求下,国外域名不能备案。 为了解决这个不备案,又需要指向国内vps 的需求。 还有一个原因是,有了域名以后就能申请https 。




二、过程遇到了怎样的技术问题

1.按照上面的思路我们的方案是

2.遇到了这样的问题 ,就是nginx 代理后依然被云提示需要备案域名 ,咨询了小伙伴

逆向思考: 云如何知道你前端代理的域名的? 这个思维是错误的,应该思考云如何判断你是未备案域名的? 应该是获取到你的host ,根据host查询域名白名单,工信部的域名备案接口。

(a) 按照这个思维,我们把proxy_set_header Host 换成 ip 这样就绕过了他的查询 ,proxy_set_header 是什么意思 ? 允许重新定义或者添加发往后端服务器的请求头。所以原配置的$host 就是我的域名,也就是落到 国内vps中的请求host还是 我的域名这样我就触发了拦击,更改为域名就ok了。

(b) 第二个,绕过方法我们将 proxy_set_header Host 设置成一个白名单的域名,这样还是可以绕过 。

#PROXY-START/location ~* /.(php|jsp|cgi|asp|aspx)${ proxy_pass http://114.*.*.*; proxy_set_header Host 114.*.*.*; # 修改host 原来,绑定的是$host,更改为ip 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;}location /{ proxy_pass http://114.*.*.*; proxy_set_header Host 114.*.*.*; # 修改host 原来,绑定的是$host,更改为ip 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; add_header X-Cache $upstream_cache_status; #Set Nginx Cache add_header Cache-Control no-cache; expires 12h;}#PROXY-END/


三、结论和感想

  1. 先了解别人实现该技术的原理,比如云怎么获取你域名的,解析所有http请求,把请求的域名取出来,知道这个原理后就知道如何绕过了, know it then hack it 。
  2. 对技术实现原理要搞清, 比如nginx 配置文件,花5分钟读一读可能就知道怎么办 。

关键词:使用,方法,外域

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭