问题标签 [meteor-up]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ubuntu - 使用 MUP 将 Meteor 应用程序部署到 Ubuntu EC2 实例
版本/背景
我正在使用meteor-up(mup)的0.7.6版本,Meteor 1.0.2.1,它使用我读过的Mongo v0.10.33。
我正在使用小型 Ubuntu Server 14.04 LTS (HVM)、SSD 卷类型 - ami-3d50120d
AWS 上的 EC2 实例作为 Meteor 应用程序的目标。
我的域指向ami-3d50120d
实例的弹性 IP(我将domain-name
在此处调用它)。
我可以mup setup
在新的ami-3d50120d
地方成功安装 Mongo 和 Node,输出如下所示:
重新创建错误条件的步骤
- 创建了一个新的 Ubuntu 实例
- 分配了链接到我的域的弹性 IP
- 配置了我的 mup.json 文件(将在下面详细说明)
- 做了一个mup设置->一切都安装成功
- ssh 进入我的实例并做了一个
node -v
-> v0.10.33 - 回到我的 OSX 机器上 -> 做了一个
node -v
-> v0.10.32 - 是否部署了 mup -> 发生错误情况
错误条件
笔记
我想我的 OSX 机器上安装了节点 v0.10.32(并且我的亚马逊实例上安装了节点 v0.10.33),但这不应该影响我的 Meteor 版本 1.2.1 的节点版本,因为它有自己的节点版本我所知道的。
mup 配置
我的 mup.jsondomain-name.com
指向分配给实例的弹性 IP,如下所示:
amazon-web-services - 带有 Meteor 的 AWS SES
我正在尝试使用 Meteor 包与tarang:email-ses
@Akshat 构建的 AWS SES 进行交互。
我在 Meteor @1.* 上运行在 AWS EC2 实例上。当我使用下面的代码进行测试时,没有发送任何电子邮件。
流星密码
我已经设置了 AWS 访问密钥 ID 和秘密访问密钥并在这里使用它:
我还验证了我的电子邮件和域。在这里,我确保从经过验证的发件人 SES 地址发送:
然后在流星方法中,我创建一个新用户并像这样发送和注册电子邮件(如果我部署到meteor.com,当然没有Accounts.emailTemplates.from,这可以工作):
问题
为 email-ses 包设置的代码是否正确?
我认为这个包抽象出 Amazon SES API 以发送电子邮件(并允许本地 Meteor 电子邮件调用)。是否需要在 AWS 上设置 SMTP?
deployment - 单个 Nginx 服务器上的多个 Meteor 应用程序
我在我的服务器上设置了 nginx,我可以让运行在不同端口上的流星应用程序在不同的“文件夹”中运行。这是配置:
问题是当我尝试在任一应用程序中导航时,url 的文件夹部分会被重写。
例如,如果我在meteor.example.com/app1
,并且我尝试导航到联系人页面,则 url 更改为meteor.example.com/contact
而不是meteor.example.com/app1/contact
。
此外,当我转到 时meteor.example.com/app1
,我的应用程序中出现 404,因为路由器似乎认为我正在尝试导航到app1
我的应用程序中调用的页面。
我已将ROOT_URL
on app1 设置为http://meteor.example.com/app1,但这似乎无法解决此问题。
同样,我可以通过转到正确访问每个应用程序meteor.example.com/[appname]
,但我在应用程序中得到 404,因为它认为这[appname]
是我试图导航到的页面。
任何帮助将不胜感激,谢谢。
meteor up
如果这是有用的信息,我将用作我的部署工具。
amazon-web-services - 使用 Meteor 设置 AWS SES 生产访问权限
设置 Meteor 以使用“开箱即用”AWS SES 很简单,无需修改即可使用本机 Meteor“电子邮件”方法。
可以在此处找到实现此功能的步骤。感谢 Brian Shamblen 整理了详细的答案。
但是“开箱即用”SES 的一个警告是,您需要同时验证发件人和收件人的电子邮件地址。
为了解决这个问题,您可以向 AWS SES 提出他们所谓的生产访问请求。
此外,根据 Brian Shamblen 的说法,
获得生产访问权限的过程相当复杂。人们需要处理来自 SES 的退回和投诉通知,并防止将来向这些地址发送消息。
问题
处理来自 SES 的退回和投诉通知并防止将来向这些地址发送消息的 Meteor代码是什么?
编辑:为了清楚起见,对问题进行了修改。
javascript - Meteor 和 /private 目录
我目前正在使用/private
Meteor 1.0.3 中的目录来存储 pdf 文档并将其提供给浏览器。
例如,我有一个这样的文件夹结构:
我有一个带有按钮单击事件的模板。在这个事件中,我调用了 Meteor 方法,最后调用了服务器端 Iron Routergo('render-pdf')
方法。在这些 Meteor 方法中,我使用fs
node.js 来:
(1)检查
/user-name
目录是否存在,如果不存在,我创建它。(2)创建pdf-file.pdf文件
然后在服务器端 Iron Routergo('render-pdf')
路由中,再次使用fs
node.js 来:
(3) 阅读创建的 pdf-file.pdf 和
(4) 最后渲染到浏览器
问题出在步骤(1)中,创建/user-name
目录时,Meteor 服务器重新启动。在步骤 (2) 中,Meteor 服务器再次重新启动。
但最重要的是,我的代码第一次运行时,目录不存在(步骤(1)),我得到一个错误。
然后我可以再次调用按钮事件,这一次是在创建目录之后,并且 pdf 渲染得很好。
错误如下所示:
可能是当我到达尝试呈现文件的步骤 (4) 时,它要么还不存在,要么应用程序正在重新启动。下次我尝试应用程序已经重新启动并且文件存在。
我的印象是
/private
目录提供了一个地方来处理不影响应用程序执行的文件?对我来说,这意味着,在运行时我可以添加我想要的任何内容,而无需重新启动应用程序。
小历史
起初我使用/server
带有./folder-name
子目录的目录。这就像我添加文件夹和文件时应用程序没有重新启动一样。不利的一面是,当我使用出色的 Meteor-up 包 (mup) 部署 Meteor 时,部署包会忽略这些文件,除非我在其中的*.js
某处添加了文件。此外,如果我在我的 EC2 实例上创建了“隐藏”文件夹结构,部署将删除该目录。
所以使用/private
文件夹解决了这个问题,或者我认为。部署的文件夹结构和“资产”。但是这种方法的缺点是当我向它添加“资产”时,它似乎重新启动了 -- even though I though this wasn't something that was suppose to happen
。
问题
如何在/private
不重新启动 Meteor 应用程序的情况下在目录下添加“资产”(以目录和文件的形式)?如果无法做到这一点,如何在不重新启动应用程序的情况下仅在服务器端的任何地方添加“资产”?
请注意
当我部署到生产环境时,我希望保留一些文件夹结构,例如:
应该说那里,而
目录可以是动态的。我只提到这一点是因为我已经阅读过,如果您执行/.directory-name
, Meteor 会忽略该文件夹及其内容。但这也包括部署。
我真正需要的
部署包中包含的仅服务器端文件夹,当我在运行时向其添加“东西”时,不会重新启动我的应用程序......
一种包含
/.hidden-folder
在我的mup
部署包中的方法,或者/private
每次我stuff
在运行时添加到它时都不会重新启动文件夹。
meteor - 使用 Meteor Up 部署后,发送电子邮件不再适用于 Ubuntu 14.04.1
最近,我在 Meteor 应用程序中添加了电子邮件发送功能,同时使用电子邮件包和帐户注册 API 来发送电子邮件。前几天,在我的开发机器上彻底测试后,我使用 Meteor Up 将它部署到我们的生产服务器。部署后,我快速检查了电子邮件 API 是否正常工作,然后顺其自然。一两天后,我做了一些小改动,将这些电子邮件 API 包装在 Meteor.defer 方法中以加快 UI。我在本地测试了更改(一切正常),然后重新部署。在看到有一些新的安全更新可用的通知后,我还在我的服务器上运行了 apt-get update。完成此操作后,电子邮件系统不再工作。我尝试恢复到以前的配置,但它仍然无法正常工作。我收到超时错误:
我想知道是否有人对可能导致此超时的原因有任何想法(端口阻塞?...我该如何诊断?)。鉴于我的 SMTP 端口在我的开发机器上工作,这似乎不是我的代码的问题,而是 MUP 部署或 Ubuntu 配置的问题。我对配置 Ubuntu 服务器不是很熟悉。任何有关如何进行调试的建议将不胜感激!
meteor - 2 台不同服务器上的 Meteor-Up 故障
每次尝试部署到 AWS/EC2 实例或 Digital Ocean 液滴时,我都会遇到失败。对于 EC2 实例,我使用的是 pem 文件,而对于 droplet,我使用的是密码访问。为了完成 mup 设置,有很多障碍需要跳过,但这最终在两种情况下都成功了。在调用部署过程中失败的是 mup 部署:步骤。
这是我的液滴 mup.json:
无论是在 EC2 实例中还是在 Droplet 实例中,都会出现以下消息:
该项目在我的本地主机上完美运行,没有错误。
有任何想法吗?
在此先感谢亚历克斯·亚当斯
解决方案是:
mup 日志显示它不喜欢为文件夹指定的路径来保存上传的文件。我将应用程序更改为使用 GridFS,从而将文件存储在数据库中。该应用程序现在可以正确部署。
meteor - 如何正确安装 Meteor-Up (mup)?
我正在尝试安装 Meteor-Up (mup) 以将应用程序从我的 Ubuntu 14.04 笔记本电脑部署到 Ubuntu 14.04 服务器,但它似乎没有正确安装。如何正确安装mup?
我知道我需要 npm 才能安装 mup。所以,我已经成功安装了 npm:
然后,我尝试使用以下命令安装 mup:
安装日志:
在此之后,每当我尝试使用$ mup command
or $ mup -help
(检查它是否正确安装)时,我都会收到以下消息:
我是否错过了安装过程的一部分,因为它似乎认识到 mup 是一个命令?我想知道如何解决这个问题,并且对问题的解释将是一个奖励。感谢您的任何帮助!
ssl - 使用流星的 nginx 中的 ssl 和 https
我有这个 nginx 配置
并使用具有正常设置的 mup 部署到 ec2
它已部署,我可以访问该站点app.com
但https://app.com
它不工作
因为在配置文件中,所有请求都重写为https
这里发生的事情
- 当我输入 app.com 时,我可以访问该网站,这意味着它正在转发 app.com 广告https://app.com
- 我无法访问https://app.com,这意味着 nginx 不工作
以上两种情况哪一种是真的?
我别无选择。我检查了 ssl 检查器,他们显示未安装 ssl 证书。
那么为什么我的应用程序在进入 app.com 时工作?
deployment - Meteor:手动部署
你们有手动部署 Meteor 的经验吗?我很想听听一些反馈。
我们的客户拥有严格的 IT 政策。而且他们不会允许第 3 方接触他们的服务器。所以我们这样做:
- 填写一些解释我们的应用规格的表格。
- 向他们发送应用程序源代码和数据库转储的压缩包。
- 等待他们配置服务器并测试我们的应用程序。
- 获取反馈并发送回修订(如果有)。
- 向我们拥有的任何上帝祈祷,他们设法部署我们的应用程序。
基本上我想知道如何捆绑一个 Meteor 项目并将其发送给我们的客户进行部署,而他们这边的工作量最小。
使用我们的标准 LAMP 堆栈,这曾经是一个非常简单的过程。但是现在事情不再那么简单了。