文档章节

nginx nodejs负载均衡

wisdomofgod
 wisdomofgod
发布于 2015/04/19 18:53
字数 401
阅读 30
收藏 0

一:安装nginx

sudo apt-get install nginx

二:启动nginx

sudo /etc/init.d/nginx start

三:查看配置文件

gedit /etc/nginx/nginx.conf

发现 include /etc/nginx/sites-enable/*

server并没有直接在nginx.conf里  配置 (这跟 源代码安装的不同)

源代码安装的 配置文件在 gedit /usr/local/nginx/conf/nginx.conf

并且server配置直接写在了conf文件里


四:找到 /etc/nginx/sites-enable/default

sudo gedit /etc/nginx/sites-enbale/default

把原来默认的 server  用#备注  或者直接删除

添加如下代码:

upstream nodejs {

    server 127.0.0.1:3000;            //可以加上 weight=5;  代表权重  值越大分配比重越大  没有则平均分配

    server 127.0.0.1:3001;

    keepalive 64;

}


server {

    listen 80;                                            //端口号

    server_name localhost 127.0.0.1;     //URL

    access_log /var/log/nginx/test.log;

    location / {

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header Host  $http_host;

        proxy_set_header X-Nginx-Proxy true;

        proxy_set_header Connection "";

        proxy_pass      http://nodejs;                

    }

}

五:添加测试文件 http.js

var http = require('http'); 

  

var server1 = http.createServer(function (req, res) { 

 console.log("Request for: " + req.url + "-- port 3000 "); 

 res.writeHead(200, {'Content-Type': 'text/plain'}); 

 res.end('Hello Node.js\n'); 

}).listen(3000, "127.0.0.1"); 

  

var server2 = http.createServer(function (req, res) { 

 console.log("Request for: " + req.url + "-- port 3001 "); 

 res.writeHead(200, {'Content-Type': 'text/plain'}); 

 res.end('Hello Node.js\n'); 

}).listen(3001, "127.0.0.1"); 

  

server1.once('listening', function() { 

 console.log('Server running at http://127.0.0.1:3000/'); 

}); 

  

server2.once('listening', function() { 

 console.log('Server running at http://127.0.0.1:3001/'); 

});

六:运行并生成日记

node http.js>http.log        

七:负载均衡测试

1,安装siege

sudo apt-get install siege

2,启动siege

sudo siege -c 50 http://localhost        //每秒发送50个并发请求

3,运行一段时间  ctrl+c  停止siege

4,查看http.log文件

5,安装R语言 分析http.log

sudo apt-get install r-base-core

6,运行R命令

R

>df<-read.table(file="http.log",skip=9,header=FALSE)

>summary(df)

>q()


负载均衡测试 转自:http://blog.fens.me/nodejs-core-cluster/

© 著作权归作者所有

共有 人打赏支持
wisdomofgod
粉丝 0
博文 31
码字总数 9078
作品 0
厦门
程序员
socket.io搭建分布式web推送服务器

socket.io是目前较为流行的web实时推送框架,其基于nodejs语言开发,底层用engine.io实现。 借助nodejs语言异步的特性,其获得了不错的性能。但单个实例的socket.io依然承载能力有限,最多只...

骨头bone
2014/10/16
0
18
谁说前端需要懂 Nginx 了?

--读《谁说前端不需要懂-Nginx反向代理与负载均衡》有感 读了上文发现内容虽然还是挺好的,但看完,为啥要懂nginx呀,负载均衡和前端哪里有什么半毛钱关系了,没说清楚呀。 当然这个面向前端...

vellengs
06/22
0
0
编程学习之如何在Node.js中优化服务器端渲染?[图]

编程学习之如何在Node.js中优化服务器端渲染?[图] 在 Airbnb,我们花了数年时间将所有前端代码迁移到 React 架构,Ruby on Rails 在 Web 应用中所占的比例每天都在减少。实际上,我们很快会...

原创小博客
07/22
0
0
5个提高Node.js应用性能的技巧

“如果你的 node 服务器前面没有 nginx, 那么你可能做错了。”— Bryan Hughes Node.js 是使用 最流行的语言— JavaScript 构建服务器端应用的领先工具 。由于可以同时提供 web 服务器和应用...

力谱宿云
2016/04/14
324
0
云转码切片平台 - express-ffmpeg

Linux 版本的云转码切片平台,基于 Node.js 开发。 视频批量上传,视频分块上传。 视频批量转码并且切片,切片完成删除原视频文件。 视频批量添加水印。 一键获取分享链接,防盗链设置,只允...

屈跃
08/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Python介绍

Python介绍 一、简介 Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载等,有益于增强源代码的复用性。Python相对于Lisp这种传统的函数式编程语言,P...

星汉
29分钟前
1
0
VS_设置护眼背景色

工具---->选项---->环境---->字体和颜色:

一个小妞
32分钟前
0
0
Flask跨域请求的处理方法

在Flask开发RESTful后端时,前端请求会遇到跨域的问题。下面是解决方法: 使用 flask-cors库可以很容易的解决 pip install flask-cors 两种方法,一个是全局/批量的,一个是单一独立的: 安全...

ykbj
32分钟前
9
0
Pandas学习记录-Series

系列(Series)是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组。轴标签统称为索引。 pandas.Series Pandas系列可以使用以下构造函数创建 - pandas.Series( dat...

kipeng300
40分钟前
1
0
可以实现内网穿透的几款工具

最近没什么事情,看了一些关于内网穿透的文章,因我本身已是做微信开发相关的工作,对这部分关注的比较多,现分享给大家。 首先说下内网穿透的原理。 NAPT原理 在NAT网关上会有一张映射表,表...

哥本哈根的小哥
41分钟前
38
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部