×
FalconChen
2020-04-20 18:02
#daily tips#解决了一个蛋疼的需求,网站要从 http://a.com 跳转到 https://a.com ,看似很平常的需求,但是由于环境很诡异导致不能用常规的方式解决,一是DNS, 公司内部DNS将a.com解析到真实IP,公司外部则使用CDN,二是CDN的https回源到网站的http,是80端口而非443
bash 代码片断
# 重定向的是在CDN上做的,在外部访问正常跳转,而公司内部由于是直接访问源站80端口,不会跳转。现在要让在公司访问时也跳转。也就是从80转到443端口。我观察了回源时会传递HTTP_X_REAL_IP的header到服务器的80的http服务,可以利用这个header按条件跳转,不会带这个HEADER也就是发生内部访问时才跳转。
代码只有三行,但花了我一个小时。有人看到if就会说evil,其实不然,在return或者redirect时,if并不evil,

if ($http_x_real_ip = '') {
     return 301 https://a.com$request_uri;
 }
0

暂无评论