【问题标题】:How to use https in Amazon EC2 with NGINX and Ruby on Rails?如何在 Amazon EC2 中通过 NGINX 和 Ruby on Rails 使用 https?
【发布时间】:2017-09-17 11:44:46
【问题描述】:

12 小时后,我无法在我的应用程序中使用 HTTPS。 我做到了:

  1. Amazon Certificate Manager 中,我为我的域创建了一个证书;
  2. 安全组 - 入站选项卡中,我包含了 HTTPS(HTTPS - TCP - 443 - 0.0.0.0/0)
  3. 我创建了一个 Classic Load Balancer 并包含 2 个侦听器:

    • HTTP - 端口 80
    • HTTPS - 端口 443 |实例协议 HTTP |实例端口 80 |关联我的证书(第 1 步 - ACM Amazon Certificate Manger)
  4. Amazon Route 53 - 托管区域中,我在托管区域中添加了 2 条记录:

    • CNAME www,值为 mydomain.com
    • A 类 IPv4 地址 |别名 YES |别名目标:我的负载均衡器

在我看到的教程(youtube + 互联网)中,只有通过上述步骤,HTTPS 才能在 Amazon EC2 上运行。但是,这些教程不适用于 NGINX 和 Ruby On Rails。

我得到的错误是:ERR_CONNECTION_REFUSED

经过更多搜索:

  1. 使用 ssh,我转到:/etc/nginx/sites-available/myapp 并删除了评论:listen 443 ssl;

重启nginx后,出现2个随机错误:ERR_CONNECTION_RESET和ERR_CONNECTION_CLOSE

我不知道该怎么办了。

一些印刷品:

安全组

负载均衡器 - 选项卡实例

负载平衡器 - 选项卡列表器

亚马逊托管区域

/etc/nginx/sites-available/myapp

我的环境

OS: Ubuntu 14.04.2 LTS
ruby -v: ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]
rails -v: Rails 4.2.3
nginx -v: nginx/1.8.0

谢谢大家!

【问题讨论】:

    标签: ruby-on-rails amazon-web-services nginx amazon-ec2


    【解决方案1】:

    问题是域的 DNS 记录没有指向我的 EC2。 当我注册自定义域时,我将 DNS 记录保留为默认值。 在域高级 DNS 区域中,我将“*.domain.com”和“@.domain.com”指向我的 EC2 公共 IP。但是当我们使用负载均衡器时它不起作用。

    然后,我转到我的域面板,我更改了 DNS,指向我的 EC2。 都是4个DNS,像这样:

    ns-XXX.awsdns-XXX.org
    ns-XXX.awsdns-XXX.co.uk
    ns-XXX.awsdns-XXX.net
    ns-XXX.awsdns-XXX.com
    

    DNS 传播后,Amazon Route 53 将负责管理服务器 DNS 记录。

    在 Amazon Route 53(Amazon 托管区域)中,我有一个别名记录,它使用我的负载均衡器。

    如果您想使用 Amazon Certificate Manger (ACM),请按照我的问题中的步骤 1 到 4 操作。请记住,将您的域 DNS 指向 Amazon EC2。 忘记第 5 步。

    我关注了tutorial on Youtube 来完成这项工作。 如果你已经有一个实例(像我一样),忽略创建实例过程。我也忽略了弹性 IP 创建过程。

    现在,https 工作正常。

    【讨论】:

      猜你喜欢
      • 2011-01-17
      • 1970-01-01
      • 2010-12-19
      • 2015-09-28
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      相关资源
      最近更新 更多