<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[Nginx支持TCP负载均衡之nginx 实现mysql的负载均衡]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Web服务器]]></category>
<pubDate>Thu, 19 Mar 2015 16:37:20 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	背景：如果nginx代理这个80到swoole(用swoole做webserver,其实就是做个转发和html解析。)，这个代理是个什么概念，那这个socket的fd是不是就没法长连接了呢？？被反向80端口代理的swoole还能长连接？用：nginx_tcp_proxy_module才行 ，否则肯定不行啊，即使http的keep-alive，https://github.com/yaoweibin/nginx_tcp_proxy_module 也就是说nginx的http代理长连接不行，得走tcp这一层才行，用haproxy。<br/><br/>使用Nginx实现TCP反向代理:https://www.hi-linux.com/posts/65232.html<br/>Nginx 配置TCP代理:https://www.cnyunwei.cc/archives/1315<br/><br/>nginx属于七层架构，支持的是http协议，本身对tcp协议没有支持。所以不能代理mysql等实现负载均衡。但是lvs这个东西不熟悉，主要是公司的的负载均衡都是nginx所以决定研究一下nginx的这个功能实现，下面简单介绍一下实现方法：<br/><br/>1.下载module模块<br/>下载地址 ： https://nodeload.github.com/yaoweibin/nginx_tcp_proxy_module/zipball/master<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ wget &#039;http://nginx.org/download/nginx-1.2.1.tar.gz&#039;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ tar -xzvf nginx-1.2.1.tar.gz<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ cd nginx-1.2.1/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ patch -p1 &lt; /path/to/nginx_tcp_proxy_module/tcp.patch&nbsp;&nbsp;/path是指nginx_tcp_proxy_module路径<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$&nbsp;&nbsp;./configure --add-module=/usr/local/ngx_cache_purge-1.4&nbsp;&nbsp;--prefix=/usr/local/nginx --with-http_stub_status_module --add-module=/path/to/nginx_tcp_proxy_module&nbsp;&nbsp; //编译<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ make<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ make install<br/><br/>2、修改nginx配置文件：<br/>&nbsp;&nbsp;http &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listen 80;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location /status &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_status;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>tcp &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;upstream mysql&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server 10.10.10.17:3306 weight=1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server 10.10.10.18:3306 weight=1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#check interval=3000 rise=2 fall=5 timeout=1000;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listen 3306;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_pass mysql;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;<br/>&#125;<br/>这样就完成了配置，启动nginx进行测试，下面是测试中打印的log：<br/>2012/09/07 18:22:32 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:31 10.10.10.18:3306 1446 4383<br/>2012/09/07 18:22:32 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:32 10.10.10.17:3306 1446 4383<br/>2012/09/07 18:22:33 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:32 10.10.10.18:3306 1447 4383<br/>2012/09/07 18:22:33 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:33 10.10.10.17:3306 1445 4383<br/>2012/09/07 18:22:34 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:33 10.10.10.18:3306 1445 4383<br/>2012/09/07 18:22:34 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:34 10.10.10.17:3306 1446 4383<br/>2012/09/07 18:22:35 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:34 10.10.10.18:3306 1445 4383<br/>2012/09/07 18:22:35 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:35 10.10.10.17:3306 1445 4383<br/>2012/09/07 18:22:36 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:35 10.10.10.18:3306 1445 4383<br/>2012/09/07 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:36 10.10.10.17:3306 1446 4383<br/>2012/09/07 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:37 10.10.10.18:3306 1446 4383<br/>2012/09/07 18:22:37 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:37 10.10.10.17:3306 1445 4383<br/>2012/09/07 18:22:38 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:37 10.10.10.18:3306 1444 4383<br/>2012/09/07 18:22:39 [3921] 10.10.10.107 0.0.0.0:3306 2012/09/07 18:22:38 10.10.10.17:3306 1445 4383<br/><br/>摘自：http://blog.csdn.net/gzh0222/article/details/7956270<br/><br/>Nginx支持TCP负载均衡：<br/>环境：<br/><br/>系统：CentOS 5.6 X86_64<br/><br/>Nginx：nginx-1.2.4<br/><br/>拓扑：<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; — 10.0.1.201:1433<br/><br/>LB(10.0.1.212:1433)——-&#124;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;— 10.0.1.202:1433<br/><br/><br/>默认nginx不支持tcp的负载均衡，需要打补丁，(连接方式：从客户端收到一个连接，将从本地新建一个连接发起到后端服务器)，具体配置如下：<br/><br/>一、安装Nginx<br/>1.下载nginx<br/># wget http://nginx.org/download/nginx-1.2.4.tar.gz<br/>2.下载tcp模块补丁<br/># wget https://github.com/yaoweibin/nginx_tcp_proxy_module/tarball/master<br/>源码主页： https://github.com/yaoweibin/nginx_tcp_proxy_module<br/><br/>3.安装nginx<br/># tar xvf nginx-1.2.4.tar.gz<br/># tar xvf yaoweibin-nginx_tcp_proxy_module-v0.4-45-ga40c99a.tar.gz<br/># cd nginx-1.2.4<br/># patch -p1 &lt;&nbsp;&nbsp;../yaoweibin-nginx_tcp_proxy_module-a40c99a/tcp.patch<br/>#./configure&nbsp;&nbsp;--prefix=/usr/local/nginx --with-pcre=../pcre-8.30 --add-module=../yaoweibin-nginx_tcp_proxy_module-ae321fd/<br/># make<br/># make install<br/><br/>二、修改配置文件<br/>修改nginx.conf配置文件<br/># cd /usr/local/nginx/conf<br/># vim nginx.conf<br/>worker_processes 1;<br/>events &#123;<br/>worker_connections 1024;<br/>&#125;<br/><br/>tcp &#123;<br/>upstream mssql &#123;<br/>server 10.0.1.201:1433;<br/>server 10.0.1.202:1433;<br/>check interval=3000 rise=2 fall=5 timeout=1000;<br/>&#125;<br/>server &#123;<br/>listen 1433;<br/>server_name 10.0.1.212;<br/>proxy_pass mssql;<br/>&#125;<br/>&#125;<br/><br/>三、启动nginx<br/># cd /usr/local/nginx/sbin/<br/># ./nginx<br/>查看1433端口：<br/>#lsof :1433<br/>四、测试<br/># telnet 10.0.1.201 1433<br/>五、使用sql server client工具测试<br/><br/>摘自：http://www.cnblogs.com/yahue/articles/3792176.html
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] Nginx支持TCP负载均衡之nginx 实现mysql的负载均衡]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>