我已经在我的服务器上设置了Node.js和Nginx。现在我想使用它,但在开始之前有两个问题:
- 他们应该如何合作?我应该如何处理这些请求
-
Node.js服务器有两个概念,哪一个更好:
a。为每个需要的网站创建一个单独的HTTP服务器。然后在程序开始时加载所有JavaScript代码,以便对代码进行一次解释
b。创建一个Node.js服务器,用于处理所有Node.js请求。这将读取请求的文件并评估其内容。因此,每个请求都会解释文件,但服务器逻辑要简单得多
我不清楚如何正确使用Node.js
Nginx充当前端服务器,在本例中,它将请求代理到node.js服务器。因此,您需要为节点设置nginx配置文件
这就是我在Ubuntu中所做的:
在/etc/nginx/sites available/上创建文件yourdomain.com:
vim/etc/nginx/sites available/yourdomain.com
在其中,您应该有如下内容:
运行节点服务器的IP。我选择了3000端口。
上游应用程序_yourdomain{
服务器127.0.0.1:3000;
保持活力8;
}
#nginx服务器实例
服务器{
听80;
听[:]:80;
服务器名称yourdomain.com www.yourdomain.com;
访问_log/var/log/nginx/yourdomain.com.log;
#使用正确的头将请求传递到node.js服务器
#还可以添加更多内容,请参见nginx配置选项
地点/{
代理集头X-Real-IP$remote\u addr;
proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For;
代理设置头主机$http\U主机;
proxy\u set\u头X-NginX-proxy true;
代理通行证http://app_yourdomain/;
代理_重定向关闭;
}
}
如果希望nginx(>=1.3.13)也处理websocket请求,请在location/部分添加以下行:
proxy\u http\u版本1.1;
代理设置头升级$http\U升级;
代理设置头连接“升级”;
完成此设置后,必须启用上面的配置文件中定义的站点:
cd/etc/nginx/sites enabled/
ln-s/etc/nginx/sites available/yourdomain.com yourdomain.com
在/var/www/yourdomain/app.js创建节点服务器应用程序,并在localhost:3000运行它
var http=require('http');
http.createServer(函数(req,res){
res.writeHead(200,{'Content-Type':'text/plain'});
res.end('Hello World\n');
}).听(3000,“127.0.0.1”);
console.log('服务器在运行http://127.0.0.1:3000/');
测试语法错误:
nginx-t
重新启动nginx:
sudo/etc/init.d/nginx重启
最后,启动节点服务器:
cd/var/www/yourdomain/&&;node app.js
现在你应该在yourdomain.com上看到“Hello World”
关于启动节点服务器的最后一点注意事项:您应该为节点守护进程使用某种监视系统。有一个关于upstart和monit节点的很棒的教程