有些人可能认为这是一个愚蠢的问题,但我是前端人,我有很多想法。
我为客户开发了一个Node应用程序,它已经准备好放在生产服务器上了。服务器是一台专用机器,据我所知,目前运行的是高流量的Wordpress博客和论坛(也是PHP + MySQL)。
我一直在本地和托管上运行我的应用程序,该托管在那里托管的Passenger for Node应用程序中提供了构建。我认为在客户服务器上部署Passenger是一个好主意。
我已确定客户服务器运行:
HAProxy 1.4-> Varnish-> Apache2
或
HAProxy 1.4-> Apache2。
我的知识在这里结束,我可以说我对这些东西真的没有经验。乘客可以使用apache运行,教程似乎非常简单。它只是意味着所有必须做的就是:
1)在服务器上安装Node和Passenger(使用Apache模式)
2)配置Apache
3)运行应用程序?
这比那复杂吗?魔法?
谢谢!
答案 0 :(得分:1)
以下是关于如何完成的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>
然而,按照通常情况,它不会在第一次完美运作。如果事情不起作用,请拖尾乘客日志文件,然后谷歌那些错误。这通常位于/var/log/apache2/error_log
。您可以通过运行passenger-config --detect-apache2
找到错误日志的确切位置。
要实时拖动日志,请尝试tail -f /var/log/apache2/error_log
。
在你获胜之前,一点一点地完成错误!