为什么使用NGINX或如何正确部署Meteor应用程序?

时间:2016-09-15 00:11:55

标签: ssl meteor nginx deployment meteor-up

我将在几周内完成我的Meteor应用程序。所以我将面临的问题 - 如何让我的应用程序可供其他人使用。

首先,我在Digital Ocean上买了一滴。并开始阅读有关将meteor应用程序部署到生产服务器的方法。

我找到了两种完全不同的方法!

第一个很简单(所以我真的很喜欢它)。这是link。我必须做几个步骤 - 用Ubuntu 14.04创建一个Droplet,然后通过ssh连接到这个droplet,然后安装并运行mup。之后,任何人都可以访问我的应用程序。我担心,没有ssl支持(我的项目是电子商务,所以我真的需要https-connection),但后来我在mup docs中找到了一篇简短的文章How to set up SSL with Mup。所以一切都很完美乍一看。

但后来我找到了另一种部署流星应用的方法。这是link。它要复杂得多。首先,我需要在我的Droplet上安装node和mongo。然后安装并配置nginx。然后经过Meteor安装的许多步骤。作者没有解释为什么人们需要以这种方式部署应用程序,假设它显然是对每个人。他的解释是“问题在于,通过公共端口(即80)运行像Meteor这样的应用程序是不明智的。”

我承认我在这些问题上没有经验和知识。我能说的一件事就是我需要一种非常合适的方式来部署电子商务流星应用程序。并不重要,这样做我不会睡几个小时。

所以问题是:哪种方式适当?而且(重要的是)为什么?

安全性和性能对此项目都很重要。我也将使用prerender.iospiderable(用于seo目的)和fast render,如果它可以对您的答案产生影响。非常感谢你们的答案!

1 个答案:

答案 0 :(得分:3)

您可以通过不同的机制在服务器上部署Meteor App。有很多方法可以做同样的事情。 就像你说的那样你也发现了两种方法。 因此,在第一个链接中,您在成功部署时使用Meteor up来部署应用程序。 在第二种方法中,您需要首先登录服务器,然后创建用户,而不是安装服务器所需的所有内容,之后您需要设置Nginx。

所以我猜你的问题与“Nginx”有关。你想知道

  

1)为什么我们需要使用Nginx

     

2)哪一个是更好的方法

所以第一个问题的答案如下: -

Nginx(发音为“engine x”)是一个用于多种用途的Web服务器,主要用于代理传递。使用nginx的方法,您可以将您的请求从一个URL重定向到另一个URL,并且实际的URL是从UI隐藏的(出于安全目的和重定向)。 就像流星一样,你的应用程序默认运行在3000上,所以一种方法是你可以打开3000端口并在该端口上运行你的应用程序。但是通过nginx,您可以在80端口上运行您的应用程序,并且当用户点击任何事件而不是在nginx中时,您可以配置您要发送请求的地址。 就像你可以将它们发送到3000端口。 所以现在用户实际上并不知道你的请求在哪里,因为你向他们展示端口80,但实际上你的请求是转到3000端口。所以这是使用nginx的一个优点,还有更多。

因此,对于nginx的配置,如果你使用的是ubuntu而不是通过简单的命令,你只需要安装nginx:

sudo apt-get install nginx

然后在以下目录下的nginx配置文件中进行设置: -

/etc/nginx/sites-enabled/default

只需打开此文件并在此设置您的配置,如: -

server {

listen       80;
        server_name  localhost;

        root   /home/parveen/meteor/app;
        location / {
                index /index.html;

        }

        location /api {
           proxy_pass http://localhost:3000;
        }
}

通过这种方式,您可以根据需要配置nginx设置,请阅读nginx文档以获取详细信息。

之后,您需要使用 forever或nohup 启动服务器,以便在退出服务器登录时服务器不会停止。

<强>结论: -

在第二种方法中,您需要通过ssh登录到您的服务器而不是配置nginx来安装所有内容,然后运行您的服务器。 如果您再次进行任何更改,则需要更新对服务器的更改,然后停止meteor应用程序然后重新启动它。 但这是更安全的方法,你可以做你想做的事。

在第一种方法中,他们使用mup(Meteor up)为你做了很多工作。您只需要进行一些配置,您可以使用Docker或在共享的博客(Droplet)链接中定义,只需要运行meteor up命令,这将首先为您的应用创建一个捆绑,而不是在第一种方法中运行如果您不需要再次登录服务器更新更改,那么您需要做的是再次运行相同的命令,这将创建包含更新的新包并运行您的项目。但我不认为这更安全。

所以它取决于您想要使用的要求和选择。

如果您有任何问题,请致电。

希望这会有所帮助!

由于