AWS 云产品 CloudFront + ELB + EC2 + S3 构建虚拟主机动静分离站点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS 云产品 CloudFront + ELB + EC2 + S3 构建虚拟主机动静分离站点相关的知识,希望对你有一定的参考价值。

一、架构图

我们要实现的架构师,一台 EC2 两个虚拟主机,通过一个 ELB,一个 CloudFront 实现动静分离,并且实现不同的域名访问不同的网站,并且启用 HTTPS。

技术图片

二、实现步骤

2.1、EC2 配置

在 EC2 上面安装 nginx 服务,创建两个虚拟主机的网站文件,以及虚拟主机配置文件,分别如下:
网站路径如下,首页里面通过标签引用了图片。

├── test1
│?? ├── images1
│?? │?? ├── 1.jpg
│?? │?? └── 2.jpg
│?? └── index.html
└── test2
    ├── images2
    │?? ├── 1.jpg
    │?? └── 2.jpg
    └── index.html

两个虚拟主机对应的 nginx 配置文件如下:

     server 
        listen       80;
        server_name  test1.wzlinux.com;
        root         /usr/share/nginx/test1;

        location / 
        

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        
            expires      30d;
        

        location ~ .*\.(js|css)?$
        
            expires      12h;
        
    

    server 
        listen       80;
        server_name  test2.wzlinux.com;
        root         /usr/share/nginx/test2;

        location / 
        
    

域名解析到 EC2,验证没有问题,测试好之后,安全组可以改为只允许 ELB 所在安全组的流量访问,其实这里也可以配置 HTTPS,这里省略。

2.2、ELB 设置

2.2.1、创建目标组

创建好目标组之后,记得添加注册实例,就是我们的 EC2。

技术图片

2.2.2、创建负载均衡器

技术图片

我们可以添加 HTTPS 的监听(非必须),这样我们就可以加密访问了,可以设定各种规则,我们这里不需要设定,加上就行。

技术图片

然后把域名解析到我们的 ELB,分别使用 HTTP 和 HTTPS 访问我们的两个虚拟主机,都是可以正常显示各自的页面,关于证书的申请,我们可以使用 AWS 的 ACM 服务。

以上是关于AWS 云产品 CloudFront + ELB + EC2 + S3 构建虚拟主机动静分离站点的主要内容,如果未能解决你的问题,请参考以下文章

HTTPS、AWS ELB、CloudFront 和 S3

使用 Cloudfront 设置 AWS ELB 而不是单个 EC2 实例有啥意义?

我应该为 elb 和 aws S3 设置两个不同的 Cloudfront 发行版吗?

Cloudfront + ELB 可以更改我的请求的查询字符串吗?

用于 PHP 托管的 AWS CloudFront

如何在 AWS ELB 日志中获取完整的 POST 正文?