带有Sails和SSL的502坏网关

时间:2016-07-14 07:18:12

标签: ssl nginx sails.js digital-ocean dokku

我有一个sails应用程序,digitalocean通过dokku托管。每次运行和部署都很好,如果我继续使用我的域名,我可以看到应用程序正在运行。

现在我已经添加了一个TLS证书(以便我的应用可通过HTTPS访问):

  1. 创建我的私钥和CSR请求。
  2. 使用它们从CA权威机构获取证书。
  3. 将我的私钥和已颁发的证书添加到config/local.js
  4. 压缩密钥和证书,并通过dokku certs:add
  5. 将其添加到dokku

    所以,如果我将我的应用程序推送到dokku,它会在部署阶段没有任何错误的情况下启动。我可以清楚地看到,在部署时,我的应用程序应该可以通过buildpack日志中的https访问:

    ...
    -----> Creating https nginx.conf
    -----> Running nginx-pre-reload
           Reloading nginx
    -----> Setting config vars
           DOKKU_APP_RESTORE: 1
    -----> Shutting down old containers in 60 seconds
    =====> c302066ebd1ecc0ac5323c3cbbcaf9132eebf905f5616e5b4407cecf2b316969
    =====> Application deployed:
           http://my-domain-here.com
           https://my-domain-here.com
    

    唯一的问题是,当我导航到我的域时,我在浏览器中出现“502 bad gateway”错误,如果我查看应用程序的nginx错误日志,我可以看到以下错误:

    2016/07/14 03:09:30 [error] 7827#0: *391 upstream prematurely closed connection while reading response header from upstream, client: --hidden--, server: my-domain-here.com, request: "GET / HTTP/1.1", upstream: "http://172.17.0.2:5000/", host: "getmocky.com"
    

    有什么问题?如何解决?

1 个答案:

答案 0 :(得分:0)

好的,我已经弄清楚了。事实证明,如果你仔细阅读Sails中的deployment,你会看到像

这样的文字
  不用担心配置Sails以使用SSL证书。 SSL几乎总是在您的负载均衡器/代理服务器或您的PaaS提供商处解决

这意味着从我的列表中我必须排除p3,之后一切都会有效。