我的第一个 meteor 实例的 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 访问这个实例.然后使用类似的配置我想将第二个实例部署到同一个液滴并通过 https://my.domain.com:3002 访问它.
问题是部署后通过https访问报错ERR_CONNECTION_CLOSED,但是通过http访问是OK的。
我怎样才能让它发挥作用?
最佳答案
终于,我做到了。
首先,我使用了mupx
。但在那里我也遇到了麻烦。后来我发现我的错误是为不同的应用程序或协议(protocol)编写了相同的端口。因此,有第一个和第二个应用程序的工作配置:
{
"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。清除浏览器历史记录后一切都很好。
关于ssl - 如何使用 mup 在一个 digitalocean 液滴上正确部署带有 SSL 的多个 meteor 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35253610/