我已经在DirectAdmin注册了一个VPS,运行了CentOS,我使用的是我从另一个站点注册的域。我已经完成了必要的配置,以使域显示VPS的默认页面。我还使用node.js和mongoDB安装了CentOS,但我不得不运行应用程序。我为MongoDB设置了一个bind_ip文件,其中bind_ip设置为VPS的IP,当我试图在端口27017上运行MongoDB时,我得到以下消息:
service mongod start
Starting mongod: [ OK ]
bash: /var/log/mongodb/mongodb.log: Permission denied我认为这是因为我没有对VPS进行任何授权,但我无法找到如何进行授权。我做错了什么?
而且,我无法让node.js正常运行。当我在端口3000上运行一个基本的node.js应用程序时,一切似乎都很好,但是当我访问我的域名或端口3000上的VPS IP时,服务器没有响应。我该怎么解决这个问题?是否需要配置VPS上的端口以使服务器响应?
当打开域而不指定浏览器上的端口时,如何配置VPS以连接到节点应用程序,而不是显示默认的index.html页面?
我没有在VPS上配置node.js的经验,所以我的最后一个问题是:是否有关于如何在VPS上使用node.js运行node.js的教程?提前谢谢。
编辑:我通过简单的重新安装解决了MongoDB问题。我想第一次安装的时候出了点问题。
发布于 2013-05-30 11:51:36
似乎您是以非特权用户的身份启动mongod的,因此它无法打开日志文件。您应该以系统服务的形式运行mongod服务,然后提供对用户的访问(请查看db.addUser文档)。
要在生产中运行Node.js,最好使用一些工具,比如https://github.com/nodejitsu/forever,然后通过代理进行代理请求。您可以使用Apache,因此将其设置为侦听您的index.html到另一个端口,例如ports.conf中的8080。
Listen 8080并在80岁时添加一个虚拟的重定向到应用程序,如下所示:
<VirtualHost you.example.com:80>
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/
</Location>
</VirtualHost>也许您可能会失去一些纯节点的性能,以及这个设置,所以看看https://github.com/nodejitsu/node-http-proxy也。
发布于 2013-05-30 15:56:45
对于问题的这一部分:
bash: /var/log/mongodb/mongodb.log:权限被拒绝
用于启动MongoDB的用户没有访问使用日志路径配置选项指定的日志文件的权限。您应该首先了解它正在以哪个用户的身份运行(如果您使用的是10 the,通常是mongod )。
然后查看日志文件的所有者:
ls -al /var/log/mongodb/mongodb.log您可能需要使用sudo或登录作为根用户来修改权限(或者创建文件)。假设它存在,那么您将需要更改所有权,如下所示:
chown mongod:mongod /var/log/mongodb/mongodb.log另一个选项是在其他地方创建一个新的日志文件,并将logpath选项更改为指向这一点。
https://serverfault.com/questions/511912
复制相似问题