我正在将Meteor应用程序迁移到AWS,希望使用附加到ELB的ACM颁发的SSL证书。 我目前的设置是:
mup.js
,它可以很好地使用文件系统中可用的SSL证书)我想完全停止使用mup.js
配置中的反向代理,让ELB运行所有SSL内容。问题是ELB无法与Meteor通信,
尝试了不同的ROOT_URL但没有一个正在运行:
我应该为ROOT_URL提供什么?是否接受请求改变游戏规则?即如果我有错误的ROOT_URL,Meteor仍然可以接受传入的请求吗?
Mup config
module.exports = {
servers: {
one: {
host: 'ec2-111111.compute-1.amazonaws.com',
username: 'ubuntu',
pem: 'path to pem'
}
},
meteor: {
name: 'my-app',
path: 'path',
servers: {
one: {}
},
buildOptions: {
serverOnly: true,
},
env: {
ROOT_URL: 'https://ec2-111111.compute-1.amazonaws.com',
MONGO_URL: 'mongo url',
},
dockerImage: 'abernix/meteord:node-8.9.1-base',
deployCheckWaitTime: 30,
},
proxy: {
domains: 'ec2-111111.compute-1.amazonaws.com,www.ec2-111111.compute-1.amazonaws.com',
ssl: {
crt: './cert.pem',
key: './key.pem'
}
}
};
答案 0 :(得分:0)
已解决,首先和一般问题是我使用的是经典ELB,它不支持WebSockets并且阻止了DDP连接。 WebSocket和Sticky Sessions附带的较新Application Load Balancer
有所帮助。更多关于差异的信息:https://aws.amazon.com/elasticloadbalancing/details/#details
我的用例更具体的另一个问题是没有ELB运行状况检查的终点,我隐藏/保护了basic_auth后面的所有内容,运行状况检查导致403 unauthorized
失败并且没有在ELB中注册EC2实例。确保您有返回200 OK
的运行状况检查端点,并重新访问您的安全组 - 检查inbound rules
并确保ELB可以访问EC2实例(80,443等)的相应端口。