node.js-HaProxy设置TCP Mode却无法分发给后面的服务器

问题描述

HaProxy设置TCP Mode却无法分发给后面的服务器
我使用HaProxy作为负载平衡,版本为1.5.14
这是haproxy.cfg文件配置:
global

log 127.0.0.1 local2 debug
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
debug

default
mode tcp
retries 2
option redispatch
option abortonclose
maxconn 4096
timeout connect 5000ms
timeout client 30000ms
timeout server 30000ms
#timeout check 2000
log 127.0.0.1 local0 debug

listen app1
log 127.0.0.1 local2 debug
bind 0.0.0.0:5000
mode tcp
server s1 127.0.0.1:5001 check
server s2 127.0.0.1:5002 check

后面的服务器我用node.js写的:
var net = require('net');

var server = net.createServer(function(sv_c){    sv_c.on('error'function(err){        console.log(err);    });    sv_c.on('data'function(data){        console.log(data);        sv_c.write(""ok"");    })    sv_c.on('end'function(){        console.log('close socket');    })    console.log(sv_c.remoteAddress);    console.log(sv_c.remotePort);    console.log(sv_c.localAddress);    console.log(sv_c.localPort);}).listen(5001);

请求程序我也是node.js写的:
var net = require('net');

var client = new net.Socket();client.on('error'function(err){    console.log(err);});client.connect(5000'127.0.0.1'function(){    console.log('connection');    client.write(""request"");    client.on('data'function(data){        console.log(data+""end"");        client.end();    })})

我的服务器端没有收到连接,请求端返回了一段网页:
HTTP/1.0 400 Bad request
Cache-Control: no-cache
Connection: close
Content-Type: text/html

400 Bad request

Your browser sent an invalid request.

我已经设置为tcp mode了呀,还有那些地方做错了吗?

解决方案

http://www.kaiyuanba.cn/html/1/131/226/4399.htm

时间: 2024-10-29 21:52:54

node.js-HaProxy设置TCP Mode却无法分发给后面的服务器的相关文章

Node.js之异常处理

   记得刚刚开始学Node.js时自己尝试着写了一个简单的http服务器,跟以前接触过的php相比感觉更自由,编起码来也更爽了.但是某天发现稍微一个很小的错误就导致整个http进程挂掉了,顿时有种不靠谱的感觉啊,跟php比起来感觉Node.js容错能力确实弱了很多,起码一个php文件出错也不会导致所有的服务都挂掉.           后来接触到Node.js web开发框架后感觉也不是那么轻易就让整个进程都挂掉的,于是便想研究下Node.js究竟是如何来处理各种异常从而避免整个进程挂掉的.

PHP vs Node.js 深入讨论

网络正在处于一个日新月异的发展时代.服务器端开发人员在选择语言的时候非常困惑,有长期占主导地位的语言,例如C.Java和Perl,也有专注于web开发的语言,例如Ruby.Clojure和Go.只要你的项目运行良好,你的选择就显得没有那么重要了. 但是如何让这些新的web开发人员做出一个正确的选择呢? 我不希望展开一场PHP.NodeJs两大阵营之间的战争,我将会对比这两种语言所在领域的发展状况: PHP Rasmus Lerdorf在1994年创造出了PHP.它是由安装在web服务器(Apac

提升 Node.js 应用性能的 5 个技巧

"如果nginx没有在你的节点服务器之前,那么你可能就错了."Bryan Hughes在Twitter上说 Node.js是全球领先的用JavaScript--世界上最流行的编程语言创建服务器应用程序的工具.提供web服务器和应用服务器的功能,Node.js被认为是各种以微服务为基础的开发和交付的关键工具. (下载关于Node.js和NGINX的免费Forrester报告.) Node.js可以替代或增强Java和.NET用于后端应用程序的开发. Node.js是单线程的,并且使用非阻

《写给PHP开发者的Node.js学习指南》一2.2 预定义的PHP变量

2.2 预定义的PHP变量 写给PHP开发者的Node.js学习指南 当一个支持PHP的Web服务器执行一个PHP页面时,它并不是仅提供一个未处理的对某个页面的HTTP request,然后执行这个页面.如果它这样做的话,那么每一个PHP页面都需要大量额外的代码来解析原始的HTTP request并且把这些值用更方便的方式存储起来.相反,PHP引擎解码原始的HTTP请求,并将数据填充到一堆众所周知的PHP全局变量中.这些全局变量被正确填充才能保证PHP页面正常工作. 由于我们采用的基本方法是将P

Node.js中HTTP模块与事件模块详解_node.js

Node.js的http服务器 通过使用HTTP模块的低级API,Node.js允许我们创建服务器和客户端.刚开始学node的时候,我们都会遇到如下代码: 复制代码 代码如下: var http = require('http'); http.createServer(function (req,res) {     res.end('Hello World\n'); }).listen(3000,"127.0.0.1"); console.log("Server funni

《写给PHP开发者的Node.js学习指南》一1.3 Eclipse PDT

1.3 Eclipse PDT 写给PHP开发者的Node.js学习指南学会如何分析堆栈追踪信息是PHP到Node.js成功转换的一个重要技能.堆栈追踪是查找代码错误的一个诊断工具,就像医生用X光来检查病人一样.从某种观点来看,PHP到Node.js的转换可以类似于一个复杂的外科手术.你要对PHP和Node.js代码进行手术.像手术过程一样,转换需要技巧和耐性,但是一个好的环境也有很大帮助.就像手术室中使用X光一样,堆栈追踪就是转换过程中开发环境中的工具.下一步,我们会讨论集成开发环境,为转换过

使用Node.js实现一个简单的FastCGI服务器实例_node.js

本文是我最近对Node.js学习过程中产生的一个想法,提出来和大家一起探讨. Node.js的HTTP服务器 使用Node.js可以非常容易的实现一个http服务,最简的例子如官方网站的示例: 复制代码 代码如下: var http = require('http');http.createServer(function (req, res) {    res.writeHead(200, {'Content-Type': 'text/plain'});    res.end('Hello Wo

使用 Node.js 实现简单的 Webhook的例子

距离 Node.js 这个东西出来已经过了好久了,感觉现在的前端如果不会点 Node.js 就有点太落后于时代啦.我接触它是从去年暑假开始的,当时在写一个比较神奇的东西,就顺便接触了一下.虽然网传 npm 社区不是很好,但是我使用了这么久,觉得 Node.js 还是个很好的工具.本文大概分两部分,前半部分用来向大家介绍 Node.js,后半部分则是用 Node.js 写的一个小项目:一个简单的 WebHook. 虽然是科普向,但大家还是需要先熟悉 JavaScript 的基本语法.它的异步思想,

使用Node.js配合Nginx实现高负载网络

  这篇文章主要介绍了使用Node.js配合Nginx实现高负载网络,Node的异步加上Nginx的反向代理在性能上实在是给力!需要的朋友可以参考下 在搭建高吞吐量web应用这个议题上,NginX和Node.js可谓是天生一对.他们都是基于事件驱动模型而设计,可以轻易突破Apache等传统web服务器的C10K瓶颈.预设的配置已经可以获得很高的并发,不过,要是大家想在廉价硬件上做到每秒数千以上的请求,还是有一些工作要做的. 这篇文章假定读者们使用NginX的HttpProxyModule来为上游