有些人可能认为这是一个愚蠢的问题,但是我是前端人员,并且我有很多其他想法。

我已经为客户开发了一个Node应用程序,它几乎已经准备好可以用于生产服务器了。该服务器是一台专用计算机,据我所知,该计算机目前运行着一个流量很高的Wordpress博客和一个论坛(也包括PHP + MySQL)。

我一直在本地运行我的应用程序,并在该主机上运行的Host for Node应用程序中提供了构建。我相信在客户服务器上与Passenger一起部署是一个好主意。

我确定客户服务器正在运行:

HAProxy 1.4->清漆-> Apache2

要么

HAProxy 1.4-> Apache2。

我的知识到此为止,我可以说我真的没有这方面的经验。乘客可以使用apache奔跑,该教程似乎非常简单。这是否仅意味着要做的就是:

1)在服务器上安装节点和乘客(使用Apache模式)

2)配置Apache

3)运行应用程序?

比这还复杂吗?魔法?

谢谢!

最佳答案

这是有关如何完成的great tutorial and video

总而言之,他们建议您的节点应用程序具有以下结构:

application directory
  |
  +-- app.js
  |
  +-- public/
  |
  +-- tmp/


然后在服务器上install the Passenger Apache Module

然后,您将需要配置apache使其看起来像这样(假设您的应用安装在/var/www/my_awesome_app中。

<VirtualHost *:80>
    ServerName www.foo.com
    DocumentRoot /var/www/my_awesome_app/public
</VirtualHost>


请注意,乘客可能不知道适当的可执行文件在哪里(例如节点)。默认情况下,它将在用户PATH中查找,但如果需要,您可以像这样在Apache配置文件中进行配置。如果您不知道节点的安装位置,请尝试运行which node

<VirtualHost *:80>
    ...
    PassengerNodejs /usr/sbin/node
    ...
</VirtualHost>


如果您的节点应用程序正在使用NODE_ENV环境变量,则应注意默认情况下乘客设置为NODE_ENV=production。但是,您可以将其更改为所需的内容:

<VirtualHost *:80>
    ...
    PassengerAppEnv staging
    ...
</VirtualHost>


但是,按照freakin的惯例,第一次将无法完美运行。当事情不起作用时,尾随乘客日志文件,然后搜索这些错误。通常位于/var/log/apache2/error_log中。您可以通过运行passenger-config --detect-apache2找出错误日志的确切位置。

要实时跟踪日志,请尝试tail -f /var/log/apache2/error_log

逐步克服错误,直到胜利为止!

关于javascript - 是否可能以及如何在此环境中部署Node + Passenger应用程序(HAProxy 1.4-> Apache2),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27547776/

10-09 17:41
查看更多