本文指导如何谷歌云上创建一个 Nginx 反向代理实例组,用来实现谷歌云 CDN 回源到外部源站。本文的配置主要基于下面架构。

本文档介绍的配置主要分为以下几个部分。
创建配置文件存储桶
创建模板虚机实例
创建自定义镜像
创建实例模板
创建托管实例组
创建负载均衡和 CDN
修改和更新代理配置
创建配置文件存储桶
首先创建一个 Cloud Storage 的存储桶,用来存放代理服务器配置文件。

在本地创建一个名为的配置文件,并上传到存储桶。配置文件的内容如下。注意将回源域名改为实际使用的域名。
创建模板虚机实例
创建一个 GCE VM 实例,用来制作实例组的模板。

在实例创建完毕后,点击“SSH”按钮登录到虚机命令行。

运行以下命令,安装 gcsfuse。
修改/etc/fuse.conf,将”user_allow_other”前面的注释符去掉。

运行下面命令,将之前创建的存放配置文件的存储桶挂载到本地目录。
运行下面命令,确认可以访问到存储桶上的配置文件。

运行下面命令,将可使用的文件句柄上限提高。
运行以下命令,安装 Nginx 服务。
sudo apt-get update
sudo apt-get install -y nginx
修改 Nginx 的主配置文件/etc/nginx/nginx.conf,增加最大连接数,并将反向代理配置文件导入。


运行下面命令重启 Nginx
测试 Nginx 代理访问源站资源是否成功。请将下面地址中的 IP 替换成 Nginx 服务器的公网 IP,将文件路径替换成源站测试文件的路径。
创建自定义镜像
基于 Nginx 服务器系统盘创建自定义镜像。

创建实例模板
镜像创建好后,创建一个 Instance Template。修改以下配置。
“Machine type”根据需要选择2 vCPUs 或者4 vCPUs 机型。
修改“Boot disk”配置,选择刚刚创建好的镜像。
“Firewall”勾选”Allow HTTP traffic”和”Allow HTTPS traffic”
“Networking”中的“Network tags”填写“cdn-proxy”
Management 中的 Startup script 中填入以下内容,确保新实例启动时自动挂载配置文件存储桶,并增加文件句柄上限。
配置好后,点击“Create”按钮创建模板。
创建托管实例组
创建实例组。修改以下配置。
Location 选择 Multiple zones
Region 选择离源站最近的区域,比如新加坡为 asia-southeast1
Instance template 选择上一步创建好的模板
Minimum number of instances 根据预估用量选择机器数量,比如5000 QPS 可以选择5台
Health check 创建一个80端口的健康检查,各项配置采用默认值
配置好后,点击“Create”按钮创建实例组。
创建负载均衡和 CDN
选择 HTTP(S) Load Balancing
Backend Configuration选择Create a backend service
在新建的 Backend service 配置中选择之前创建的 Instance group,勾选“Enable Cloud CDN”,并选择之前创建的 HTTP 健康检查。
在 Frontend configuration 中的 IP address 选择 Create IP address,创建一个固定公网地址用于 CDN 前端访问地址。
配置好后,点击“Create”按钮创建负载均衡和 CDN。
负载均衡和 CDN 大概需要15-20分钟初始化。之后可以访问相关文件进行测试。
修改和更新代理配置
如果源站域名等配置需要修改,可以更新 Nginx 代理配置,重新上传到配置存储桶覆盖之前文件,并用以下脚本将实例组中所有实例的 Nginx 运行 reload 更新配置。
文章版权归作者所有,未经许可不得转载。
文章信息
相关推荐
