【问题标题】:ec2 nginx enable httpsec2 nginx 启用 https
【发布时间】:2021-05-19 05:27:39
【问题描述】:

我在 AWS 上使用 EC2 和一个 docker-compose 和一个 nginx 服务器

我的 conf 看起来像这样

server {
    listen 80;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;

    location / {
        proxy_pass http://fe:3005;
    }

    location /web {
        rewrite ^/web/(.*) /$1 break;
        proxy_pass http://web:3000;
    }
}

还有我的 docker-compose.yml

version: "3.3"
services:
  nginx:
    image: nginx
    restart: always
    ports:
      - "80:80"
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf

我编辑了 docker-compose 并没有显示所有服务

有没有办法使用公共 dns 和 https?

【问题讨论】:

    标签: docker nginx amazon-ec2


    【解决方案1】:

    Nginx:

    server {
        listen       80;
        listen       [::]:80;
        server_name  localhost;
        return 301   https://localhost$request_uri;
    }
    
    server {
        listen       443 ssl;
        listen      [::]:443 ssl;
        server_name  localhost;
    
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    
        location / {
            proxy_pass http://fe:3005;
        }
    
        location /web {
            rewrite ^/web/(.*) /$1 break;
            proxy_pass http://web:3000;
        }
    }
    

    这将始终将 http 重定向到 https

    【讨论】:

    • 实际上不起作用。它说我没有安装证书
    • @juli1234 认为您已经设置了证书,因为您询问了 nginx。然后按照说明here 安装免费证书。这应该是另一个不在此范围内的问题。
    • 我没有自己的域名,这只是为了我必须完成的挑战。所以,我真的想知道我是否可以使用他们的证书,比如使用ec2.<ip>.com
    • @juli1234 这不是主域,而是一个子域,您可以将其用作主域的cname。您将需要一个主域来启用 SSL。看看 route53 和 AWS 私有 CA,这将满足您的需求。
    猜你喜欢
    • 2019-12-05
    • 1970-01-01
    • 2013-09-12
    • 2021-02-19
    • 2020-08-03
    • 1970-01-01
    • 2019-07-15
    • 2016-04-11
    • 2019-07-08
    相关资源
    最近更新 更多