我正在开发一个电子学习平台,并决定将网站分成三个部分(每个部分都有自己的流星应用程序)。这三个部分是:
根据铁路由器Issue 223,没有子域路由选项,所以我不能拥有一个服务所有三个子域的公共路由文件。
此外,我认为登录会话存储在localStorage中,因此用户将无法在子域中保持登录状态。
创建此类应用程序的推荐方法是什么,或者我最好保留整个应用程序,因为我现在使用/ admin / learner。我反对这个解决方案,因为它导致代码库变得很大(有很多if hasRole 'admin'
类型代码)非常快,为了保证应用程序尽可能安全,我喜欢完全订阅和发布的想法。
答案 0 :(得分:3)
在meteor前面设置一个nginx代理,将子域路由到相同的位置。所以它实际上是相同的应用程序,但对用户来说它看起来不像。
该配置的http部分将如下所示:
http {
server {
listen 80;
server_name nvqhq.com;
location / {
proxy_pass http://localhost:3000/marketing;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name admin.nvqhq.com;
location / {
proxy_pass http://localhost:3000/admin;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name learners.nvqhq.com;
location / {
proxy_pass http://localhost:3000/learners;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
}
默认情况下,在此设置中,登录可能仅适用于/ marketing级别。因此,您可能必须更改meteor中为会话cookie设置的域。
但首先尝试让这个设置运行。