【云计算的1024种玩法】海外数据中心+反向代理加速企业官网的海外访问体验

本文涉及的产品
.cn 域名,1个 12个月
简介: 随着跨境贸易的发展以及一带一路倡议的铺开,越来越多的中国企业需要走出去,去开拓海外用户。由于线下的生产厂家在国内,所以海外用户能看到的门面也就一个企业官网网站了,但是很多官网的服务器可能是位于国内的,在海外打开就会像我们打开一个海外网站一样,速度慢到绝望啊!

前言

随着跨境贸易的发展以及一带一路倡议的铺开,越来越多的中国企业需要走出去,去开拓海外用户。由于线下的生产厂家在国内,所以海外用户能看到的门面也就一个企业官网网站了,但是很多官网的服务器可能是位于国内的,在海外打开就会像我们打开一个海外网站一样,速度慢到绝望啊!

借着虽然不是一带一路成员国但却毗邻大量一带一路沿线国家的印度-孟买地域开通之际,我们就来试试如何实现企业官网的海外加速吧。

介绍

这里介绍的海外加速就是开通一个临近海外消费者的服务器,然后选择同步数据或者进行镜像缓存,同步数据和附件的话其实费用还是蛮高昂的,一般来说选择镜像缓存也就是反向代理就可以。

如果针对的是海外的华人消费者,那么中文网站直接反代就行,如果是歪果仁的花,可以考虑在新加坡地域建立一个英文版源站(毕竟英文再全球还是蛮通行的),然后在南美洲、欧洲、中东等地域建立服务器进行反代就行。

要求 & 收获

需要使用到的产品: 阿里云ECS 海外地域

通过本文你将讲学到: Nginx、OpenResty 的反向代理、全静态缓存、缓存清理、内容替换、CC防御解决方案

教程

如果按标准的来建一个海外站点,那就得搭建一个一模一样的环境,然后实时同步数据库和附件,不过这样做成本太高了。一般的话,我们可以考虑使用反向代理,将网站的内容做一个镜像到海外服务器。这个做法也应用于很多的地方门户,比如可以将客户提供的一个广告专题通过反代到网站目录中,看起来就像是网站自己做的专题,搜索引擎也会优先收录这个专题页面。

为了保障这个反代教程的可用性,我们还需要额外的几个模块,如果参考上述教程已经安装过 OpenResty 的朋友,可以编译升级 OpenResty 来增加模块。参考:【云计算的1024种玩法】手把手教你如何编译升级 OpenResty

没有安装 Nginx 可以参考:《【云计算的1024种玩法】手把手教你如何编译一个高性能 OpenResty》 直接按下面的增加模块进去就行:

地域选择

关于地域的选择,阿里云的16个节点最适合服务哪些地域还可以参考我的专题:阿里云全球十六个节点评测分析

参与聚能聊: 由新开的第16个数据中心,来评价阿里云的全球化部署,一起讨论阿里云的全球战略赢得丰厚奖品!

添加模块

需要添加的是:(如果不参考后面的进阶教程,其实可以跳过添加模块)

ngx_cache_purge - 缓存刷新扩展,值得一提的是现在由 nginx-modules 继续维护的新版本,原作者FRiCKLE 从14年提供 2.3 版本后就不再进行更新,国内很多教程都是用的 FRiCKLE 旧版。

replace-filter-nginx-module - Nginx替换过滤文本模块,OpenResty 提供的模块,不过由于尚处于 RC 阶段所以没有纳入 OpenResty 主线。

一、添加版本变量

NgxCachePurgeVersion='2.4.2';

二、下载源码

cd /root/src
wget https://github.com/nginx-modules/ngx_cache_purge/archive/$NgxCachePurgeVersion.tar.gz
tar xzf $NgxCachePurgeVersion.tar.gz
git clone https://github.com/openresty/replace-filter-nginx-module.git

三、编译依赖

git clone https://github.com/openresty/sregex.git
cd sregex
make && makeinstall

四、编译 OpenResty

参考全新安装教程或者编译升级教程,在 ./configure 参数中中的 --add-module=../ngx_pagespeed-$PageSpeedVersion-beta \ 后添加:

--add-module=../ngx_cache_purge-$NgxCachePurgeVersion \
--add-module=../replace-filter-nginx-module \

升级的花稍微麻烦点,需要杀进程然后安装替换二进制文件

设置教程

一、创建缓存目录,用以加速静态资源的访问

mkdir /data/cache/path -p
mkdir /data/cache/temp
chmod -R www-data /data/cache

二、修改 /usr/local/openresty/nginx/conf/nginx.conf 文件,在 http{} 最后加入:

proxy_temp_path   /data/cache/path;
proxy_cache_path  /data/cache/temp levels=1:2 keys_zone=cache_one:500m inactive=7d max_size=10g;
# 500m为最大内存占用,10g为最大磁盘占用,7d是7天无访问删除

三、创建虚拟主机配置文件,如下:

yourdomian.conf 是虚拟主机配置文件名称,改为域名就行,例如:www.mf8.biz.conf
server_name yourdomian; 中的 yourdomian 改为和反向代理的原网站一样的域名就行,例如原网站是 https://www.mf8.bi 那就是 www.mf8.biz
root /data/wwwroot/yourdir; 中的 yourdir 也改成网站域名就行,都是可以自定义的

重要:

proxy_pass http://反代域名; http://反代域名 换成自己需要反代的域名即可

如果需要考虑 HTTPS,请参考:《【云计算的1024种玩法】10分钟轻松设置出 A+ 评分的 HTTP/2 网站》

cat >> /usr/local/openresty/nginx/conf/vhost/yourdomian.conf << EOF  
  server {
  ##运行端口
  listen 80; 

  ##这里需要改成你的域名
  server_name yourdomian; 
  index index.html index.htm index.php; #首页文件优先级

  access_log /data/wwwlogs/access_nginx.log combined; #日志目录

location / {
proxy_cache_key "$scheme://$host$request_uri";
#缓存key规则,用于自动清除缓存。
proxy_cache cache_one;
#缓存区名称,与前面定义的相同

proxy_cache_valid  200 304 4h;
#正常状态缓存 4 小时
proxy_cache_valid 301 3d;
# 301状态缓存3天
proxy_cache_valid any 10s;
#其他状态缓存(如502 404)10秒

proxy_pass http://反代域名;    
#指定后端ip或者网址,可以加端口

proxy_set_header   X-Real-IP  $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
#向后端传递访客真实ip
proxy_set_header   Referer http://example.com;    
#强制定义Referer,程序验证判断会用到,修改为反代域名
proxy_set_header   Host $host;
#定义主机头


#proxy_cache_use_stale invalid_header error timeout http_502;
#当后端出现错误、超时、502状态时启用过期缓存,谨慎用。
      }

EOF

通过这一个方法可以制作出一个完全静态的网站来,从而避免了动态请求,如果网站突然遭遇 CC 攻击可以考虑通过这个方式来应对,攻击者就无法请求动态内容了。

进阶教程

刷新缓存

之前我们设置的是全静态的缓存,如果被反代的网站修改了内容并不会在这个反代的网站是显示的,因为有缓存。那么我们就要刷新缓存,在虚拟主机配置文件中添加这一段:

location ~ /purge(/.*)
{
allow            127.0.0.1; #允许访问刷新缓存的 IP
proxy_cache_purge    cache_one   $host$1$is_args$args;
}

这样访问 https://www.mf8.biz/logo.png,OpenResty 就会去请求 https://www.mf8.biz/logo.png,保存存在就输出。
如果源站的 logo.png 我们进行了更新,则需要刷新缓存,访问海外的 https://www.mf8.biz/logo.png,就会提示 Successful purge,如果这个文件没有被缓存过,则提示404 Not Found

内容替换

很多教程用的是 ngx_http_substitutions_filter_module 不过 replace-filter-nginx-module 更好用,而且和 OpenResty 更配,等稳定了就会融入主线都不需要重新添加这个模块了。

在虚拟主机配置文件的反代 location{} 中添加:

replace_filter 米饭粑 云栖社区 ig;

意思是将 米饭粑 全文替换为 云栖社区,后面的 i 表示 不区分大小写g 表示 全文搜索并替换

更多用法:https://github.com/openresty/replace-filter-nginx-module#replace_filter

这样我们就打造好了一个功能完备的 OpenResty 反向代理了。

目录
相关文章
|
6月前
|
人工智能 弹性计算 运维
云上创新丨云计算,如何从IT战略上升为企业核心战略?
云计算在中国发展十余年,越来越多行业开始用云,与此同时,云计算也已从企业IT战略上升为企业核心战略。未来,云计算一定是企业和开发者的首选,技术创新也一定优先诞生在云上。
云上创新丨云计算,如何从IT战略上升为企业核心战略?
|
6月前
|
云安全 运维 安全
阿里云国际站代理商:阿里云云主机,为企业提供高效、安全、可靠的云计算服务
@luotuoemo 飞机@TG 【聚搜云】服务器运维专家!阿里云国际站代理商:阿里云云主机,为企业提供高效、安全、可靠的云计算服务,随着互联网的快速发展,越来越多的企业开始将业务迁移到云端,云计算成为当下企业发展的关键。阿里云作为亚洲领先的云计算厂商,自推出云主机服务以来,以其高效、安全、可靠的服务赢得了广大企业的青睐。本文将重点介绍阿里云云主机的优势和功能,为企业选择云计算提供参考。
|
25天前
|
Cloud Native 持续交付 云计算
云端新纪元:探索云原生技术的奥秘在当今数字化时代,云计算已成为推动企业创新和增长的关键动力。随着云平台的不断成熟,云原生技术应运而生,以其独特的优势引领着一场新的技术革命。本文将深入探讨云原生的核心概念、主要特点以及它如何改变现代软件开发和部署的方式,为您揭开云原生这一神秘面纱。
云原生是一种构建和运行应用程序的方法,充分利用了云平台的弹性、分布式本质以及声明式基础设施。本文将解析云原生的十二要素,微服务架构的优势,以及容器化、持续集成与持续部署(CI/CD)等核心技术的实践应用。通过深入浅出的方式,让读者理解云原生不仅是一种技术,更是一种文化和方法论,它正在重塑软件开发流程,提高资源利用率和应用系统的可扩展性与容错性。
|
27天前
|
存储 安全 网络安全
云端盾牌:云计算时代的网络安全守护在数字化浪潮中,云计算以其高效、灵活的特性成为企业转型的加速器。然而,伴随其迅猛发展,网络安全问题亦如影随形,成为悬在每个组织头顶的达摩克利斯之剑。本文旨在探讨云计算服务中的网络安全挑战,分析信息安全的重要性,并提出相应对策,以期为企业构建一道坚实的云端防护网。
在当今这个数据驱动的时代,云计算已成为推动创新与效率的关键力量。它允许用户随时随地访问强大的计算资源,降低了企业的运营成本,加速了产品上市时间。但随之而来的网络威胁也日益猖獗,尤其是对于依赖云服务的企业而言,数据泄露、身份盗用等安全事件频发,不仅造成经济损失,更严重损害品牌信誉。本文深入剖析云计算环境中的安全风险,强调建立健全的信息安全管理机制的重要性,并分享一系列有效策略,旨在帮助企业和个人用户在享受云服务带来的便利的同时,也能构筑起强有力的网络防线。
|
8天前
|
存储 负载均衡 云计算
云计算的实践:如何在企业中实现云计算转型
本文介绍了云计算的基本概念、优势及其在企业中的应用。云计算通过互联网提供计算资源,具有高灵活性和扩展性,帮助企业降低成本、提高效率。文章详细讨论了云计算转型的核心概念、实践方法和挑战,包括数据中心迁移、应用程序迁移、数据迁移和系统集成。此外,还提供了负载均衡、数据存储和处理、安全性的代码实例,并展望了云计算的未来发展趋势和面临的挑战。
9 0
|
6月前
|
存储 安全 开发工具
【计算巢】云计算:如何改变现代企业的IT基础设施
【5月更文挑战第31天】本文探讨了云计算如何重塑现代企业IT基础设施,通过IaaS、PaaS和SaaS三种服务模型提供灵活资源。云计算的优势在于灵活性、成本效益、可扩展性和高可用性。文中以Python和AWS SDK创建EC2实例为例,说明云计算应用,并列举了数据存储、灾难恢复、应用程序部署和企业协作等实际场景,强调云计算正成为企业的重要选择,未来将持续创造价值。
114 0
|
22天前
|
存储 机器学习/深度学习 安全
小微企业的如何使用云计算帮助企业节约成本?
小微企业的如何使用云计算帮助企业节约成本?
|
2月前
|
云安全 安全 网络安全
探索云计算与网络安全的共生之道在数字化浪潮席卷全球的今天,云计算作为信息技术的一大革新,正重塑着企业的运营模式与服务交付。然而,随着云服务的普及,网络安全与信息安全的挑战也日益凸显,成为制约其发展的关键因素。本文旨在深入探讨云计算环境下的网络安全问题,分析云服务、网络安全及信息安全之间的相互关系,并提出相应的解决策略,以期为构建一个更安全、可靠的云计算生态系统提供参考。
本文聚焦于云计算环境中的网络安全议题,首先界定了云服务的基本概念及其广泛应用领域,随后剖析了当前网络安全面临的主要威胁,如数据泄露、身份盗用等,并强调了信息安全在维护网络空间秩序中的核心地位。通过对现有安全技术和策略的评估,包括加密技术、访问控制、安全审计等,文章指出了这些措施在应对复杂网络攻击时的局限性。最后,提出了一系列加强云计算安全的建议,如采用零信任架构、实施持续的安全监控与自动化响应机制、提升员工的安全意识教育以及制定严格的合规性标准等,旨在为云计算的安全可持续发展提供实践指南。
71 0
|
3月前
|
运维 安全 Devops
云计算时代下的企业运维变革
【8月更文挑战第10天】随着云计算技术的飞速发展,企业运维管理正经历着前所未有的变革。本文将深入探讨云计算如何重塑企业运维的方方面面,从基础设施的虚拟化到自动化工具的应用,再到DevOps文化的兴起,以及这一切如何影响企业的业务流程和市场竞争力。我们将一同见证,在这个数字化加速的时代,企业如何在云的浪潮中乘风破浪,实现运维的高效、灵活与创新。
53 10
|
3月前
|
存储 Cloud Native 安全
云计算演进问题之企业利用云计算的如何解决
云计算演进问题之企业利用云计算的如何解决