如何使用ELB和ACM在EC2示例上设置Nginx与HTTPS

4dbbbstv  于 2023-08-03  发布在  Nginx
关注(0)|答案(1)|浏览(104)

我已经建立了一个EC2示例,在这个示例上我安装了一个flask API,它使用Gunicorn和Nginx作为反向代理运行。我想使用https协议运行它,所以我通过OVH购买了一个域名,并通过AWS证书管理器请求证书,然后进行了验证。因此,我设置了一个弹性负载均衡器,以便能够使用这个新证书。但是,我不知道如何修改我的Nginx配置文件。
现在是这个:

server {
    listen 443 ssl;
    server_name <my domain name>;

    location / {
        proxy_pass http://unix:<path to the gunicorn socket>;
    }
}

字符串
但是,使用此配置,我无法启动Nginx,因为没有指定SSL证书。但如您所知,使用AWS证书管理器,无法下载任何证书,这就是我设置ELB的原因。
那么,我该如何解决我的问题呢?

编辑

我将Nginx配置文件更改为:

server {
    listen 80;
    server_name <my domain name>;

    location / {
        proxy_pass http://unix:<path to the gunicorn socket>;

        # Configurations supplémentaires
    }
}


我还在EC2示例的端口80上添加了一个进入规则。
以下是我为ELB创建的侦听器:

的数据
以下是目标群体:

及其保存的目标:

及其运行状况检查设置:


但是,正如您所看到的,示例的健康状态导致不健康,我不知道为什么。此外,随着ELB的添加,我不知道是否应该在Nginx配置文件中保留server_name <my domain name>行,或者是否应该将其更改为server_name <public IP of EC2 instance>

bwleehnv

bwleehnv1#

首先,创建一个应用程序负载均衡器(ALB)。然后在端口80上创建一个HTTP监听器,并添加一个默认规则,将流量重定向到端口443上的HTTPS。在端口443上创建额外的HTTPS侦听器。将默认操作设置为将所有通信转发到目标组。指定为域创建的ACM证书作为默认SSL证书。在端口80上创建并配置目标组。将您的示例添加到目标组,并将您的应用设置为侦听端口80。

相关问题