3

我的第一个流星实例的 mup.json 配置:

{
  "servers": [
    {
      "host": "111.222.333.444",
      "username": "root",
      "password": "mypass"
    }
  ],
  "setupMongo": true,
  "setupNode": true,
  "nodeVersion": "0.10.40",
  "setupPhantom": false,
  "enableUploadProgressBar": true,
  "appName": "myapp1",
  "app": "../myapp1",
  "env": {
    "PORT": 3001,
    "ROOT_URL": "https://my.domain.com"
  },
  "ssl": {
    "pem": "./ssl.pem"
  },
  "deployCheckWaitTime": 15
}

所以部署后我想通过https://my.domain.com:3001访问这个实例。然后使用类似的配置,我想将第二个实例部署到同一个 droplet 并通过https://my.domain.com:3002访问它。

问题是部署后通过https访问ERR_CONNECTION_CLOSED,但通过http访问是可以的。

我怎样才能让它工作?

4

1 回答 1

1

最后,我做到了。

首先,我使用mupx. 但在那里我也遇到了麻烦。后来我发现我的错是为不同的应用程序或协议编写相同的端口。因此,有第一个和第二个应用程序的工作配置:

{
  "servers": [{
    "host": "111.222.333.444",
    "username": "root",
    "password": "mypass",
    "env": {}
  }],
  "setupMongo": true,
  "appName": "myapp1",
  "app": "../myapp1",
  "env": {
    "PORT": 8000,
    "ROOT_URL": "http://my.domain.com"
  },
  "deployCheckWaitTime": 15,
  "enableUploadProgressBar": true,
  "ssl": {
    "certificate": "../ssl/bundle.crt",
    "key": "../ssl/private.key",
    "port": 8001
  }
}

{
  "servers": [{
    "host": "111.222.333.444",
    "username": "root",
    "password": "mypass",
    "env": {}
  }],
  "setupMongo": true,
  "appName": "myapp2",
  "app": "../myapp2",
  "env": {
    "PORT": 8100,
    "ROOT_URL": "http://my.domain.com"
  },
  "deployCheckWaitTime": 15,
  "enableUploadProgressBar": true,
  "ssl": {
    "certificate": "../ssl/bundle.crt",
    "key": "../ssl/private.key",
    "port": 8101
  }
}

bundle.crt并且private.key适用于所有应用程序。不要忘记使用mupx.

所以之后

mupx setup
mupx deploy

我们可以通过以下方式访问第一个应用程序

http://my.domain.com:8000
https://my.domain.com:8001

对于第二个应用程序

http://my.domain.com:8100
https://my.domain.com:8101

编辑:通过 http 访问不起作用。我不知道为什么,也许它只是为了我的配置。但是这个功能我不需要,我只需要https。因此,如果您知道如何解决,请写信。

EDIT2:没关系,http访问有效。原因是 Chrome 浏览器,它总是将我的域从 http 重定向到 https。清理浏览器历史记录后,一切都很好。

于 2016-02-10T09:08:07.697 回答