有些人可能认为这是一个愚蠢的问题,但是我是前端人员,并且我有很多其他想法。
我已经为客户开发了一个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/