CNode

如何在VPS上设置一个团队的Node.js开发环境

Yyingjie0904发布于12 年前最后回复12 年前2 回复4840 浏览0 收藏

###介绍

在这篇教程中,我们将设置一个Node.js开发环境,它可以让新成员快速融入到你的Node.js应用程序的开发进程中;如果是开发人员想同时创建一个应用程序的多个版本,此方法同样适用。 这一方法是基于Unix sockets,而不是端口,并且Node.js与Nginx交互。我们假设你已经从login.dev.nodeapp.com弄到了应用程序开发版本,另外,我们会在/tmp目录为每位开发者保留sockets,例如/tmp/login.dev.nodeapp.com.sock.

如何在Ubuntu上安装Nginx如何在VPS上安装Node.js和NVM如何用DigitalOcean创建一个主机名

listen 80

server_name ~^(?<login>[a-z]+)\.dev\.nodeapp\.com$

location {

    proxy_pass http://unix:/tmp/\$login.dev.nodeapp.com.sock:$uri$is_args$args

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for
}   

}


<br />
将这个配置链接到sites-enabled文件夹,并重启Nginx:

ln -nfs /etc/nginx/sites-available/dev.nodeapp.com /etc/nginx/sites-enabled/dev.nodeapp.com /etc/init.d/nginx restart


<br />
现在Nginx已经准备好接收用户请求,并根据URL引导他们到开发人员的app副本,例如:

http://ivan.dev.nodeapp.com -> /tmp/ivan.dev.nodeapp.com.sock http://anna.dev.nodeapp.com -> /tmp/anna.dev.nodeapp.com.sock


<br />
###修改Node.js App
我们将使用一个最小的web服务器实例,但同样的修改也适用于任何Node.js服务器(如express)。
问题是,我们需要将默认端口监听行为改为socket监听:

var fs = require('fs'); var http = require('http');

var mask = process.umask(0); var socket = '/tmp/' + process.env.USER + '.dev.nodeapp.com.sock';

if (fs.existsSync(socket)) { fs.unlinkSync(socket); }

http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(socket, function() { if (mask) { process.umask(mask); mask = null; } });

console.log('Server running at ' + socket)


<br />
现在,你可以运行你的应用程序<code>node app.js</code>并访问它:http://yourlogin.dev.nodeapp.com。

**注意**:当Node.js开始监听sockets,它会创建一个具体的文件。但如果socket文件早已存在,Node.js会监听失败,所以我们应该确保从之前的运行中移除掉socket。

另外一个事,我们应该创建一个所有人可以访问的socket,那样Nginx就可以使用它。这对开发没什么影响,但可能不利于生产环境。

恭喜,任务完成!现在要做的就是让一个新成员在你的VPS上[创建用户](https://www.digitalocean.com/community/articles/how-to-add-and-delete-users-on-ubuntu-12-04-and-centos-6)。


From:
https://www.digitalocean.com/community/articles/how-to-setup-a-node-js-development-environment-on-a-vps-for-a-team
查看回复

回复 (2)

J
j4cnodejs#1·12 年前

顶一下,.. DigitalOcean 上有好多教程, 你们是要把它们全都翻译过来吗?

Y
yingjie0904#2·12 年前
参与回复
登录后即可参与回复。登录