<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>服务器安全维护工作室 &#187; slb</title>
	<atom:link href="https://www.fuwuqiok.com/tag/slb/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fuwuqiok.com</link>
	<description></description>
	<lastBuildDate>Sun, 01 Mar 2020 07:28:40 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.26</generator>
	<item>
		<title>阿里云slb服务器SSL证书部署指南</title>
		<link>https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91slb%e6%9c%8d%e5%8a%a1%e5%99%a8ssl%e8%af%81%e4%b9%a6%e9%83%a8%e7%bd%b2%e6%8c%87%e5%8d%97/</link>
		<comments>https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91slb%e6%9c%8d%e5%8a%a1%e5%99%a8ssl%e8%af%81%e4%b9%a6%e9%83%a8%e7%bd%b2%e6%8c%87%e5%8d%97/#comments</comments>
		<pubDate>Thu, 20 Aug 2015 14:02:58 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[服务器迁移]]></category>
		<category><![CDATA[slb]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[ssl证书]]></category>
		<category><![CDATA[服务器基础环境搭建]]></category>
		<category><![CDATA[阿里云slb服务器SSL证书部署指南]]></category>
		<category><![CDATA[阿里云代维]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=2637</guid>
		<description><![CDATA[<p>一、 安装SSL证书的环境 1.1 SSl证书安装环境简介 Linux服务器一台， 阿里云slb服务器 SSL [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91slb%e6%9c%8d%e5%8a%a1%e5%99%a8ssl%e8%af%81%e4%b9%a6%e9%83%a8%e7%bd%b2%e6%8c%87%e5%8d%97/">阿里云slb服务器SSL证书部署指南</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p><strong>一、 安装SSL证书的环境</strong></p>
<p><strong>1.1 SSl证书安装环境简介</strong></p>
<p>Linux服务器一台，</p>
<p>阿里云slb服务器</p>
<p>SSL证书一张(备注：本指南使用www.fuwuqiok.com域名<a href="https://www.fuwuqiok.com" target="_blank">Yunwei123</a>进行操作,通用其它版本证书)</p>
<p><strong>1.2网络环境要求</strong></p>
<p>请确保站点是一个合法的外网可以访问的域名地址，可以正常通过或http：//XXX进行正常访问。</p>
<p><strong>二、 SSL证书的安装</strong></p>
<p><strong>2.1获取SSl证书</strong></p>
<p>成功在沃通CA申请证书后，会得到一个有密码的压缩包文件，输入证书密码后解压得到五个文件：for Apache、for IIS、for Ngnix、for Other Server，这个是证书的几种格式，Ngnix上需要用到for Ngnix格式的证书。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51901.jpg"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51901.jpg" alt="51901" width="510" height="109" /></a></p>
<p>图1</p>
<p><strong>2. 2合成证书文件</strong></p>
<p>打开for Ngnix文件可以看到2个文件。包括公钥、私钥，如图1</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51902.jpg"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51902.jpg" alt="51902" width="456" height="53" /></a></p>
<p>图2</p>
<p><strong>2.3安装SSL证书</strong></p>
<p>打开阿里云slb配置面板</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51903.jpg"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51903.jpg" alt="51903" width="581" height="626" /></a></p>
<p>可以看到证书需要pem格式的证书，而证书包里面给的类型是crt的，下面就是怎样导出pem格式证书的方法啦!</p>
<p>第一步：将for nginx里面的1_domain.com.bundle.crt文件拷贝到windows环境下，并采用加密外壳扩展方式打开</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51904.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51904.png" alt="51904" width="478" height="261" /></a></p>
<p>第二步：用加密外壳扩展打开后，查看证书路径</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51905.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51905.png" alt="51905" width="413" height="488" /></a></p>
<p>选择域名，查看详细信息，导出证书，并命名为1</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51906.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51906.png" alt="51906" width="915" height="490" /></a></p>
<p>然后回到证书路径里面，选择上一级证书，导出并命名为2</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51907.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51907.png" alt="51907" width="831" height="483" /></a></p>
<p>第三步：依次向上导出证书，直到最上面的证书也被导出，并分别命名为3，4.接下来，新建一个txt，并依次将1.2.3.4.cer用记事本方式 打开，粘帖到新建的txt中，注意中间不要留有空格(如下图)，然后保存txt，并将txt重命名为1_domain.com.bundle.pem(您 的域名，和for nginx里面crt证书名字一样)</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51908.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51908.png" alt="51908" width="526" height="215" /></a></p>
<p>第四步：将新合成的pem证书导入(粘贴)到面板的证书内容里面，将for nginx里面的key文件导入(粘贴)到私钥文件里面。</p>
<p>通过https方式访问您的站点，测试站点证书的安装配置。</p>
<p><strong>2.3.1安全签章安装</strong></p>
<p>您购买了WoSign SSL证书后，将免费获得一个能直观地显示贵网站的认证信息的可信网站安全认证标识，能大大增强用户的在线信任，促成更多在线交易。所以，建议您在安装成功SSL证书后马上在网站的首页和其他页面中添加如下代码动态显示可信网站安全认证标识：</p>
<p>(目前该安全签章只支持OV级以上证书使用)</p>
<p><strong>&lt;SCRIPT LANGUAGE=”JavaScript” TYPE=”text/javascript” SRC=”http://seal.wosign.com/tws.js”&gt;&lt;/SCRIPT&gt;</strong></p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51910.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51910.png" alt="51910" width="347" height="44" /></a></p>
<p>如果您希望在英文页面显示认证标识，则在英文页面添加如下代码：</p>
<p>&lt;SCRIPT LANGUAGE=”JavaScript” TYPE=”text/javascript” SRC=”http://seal.wosign.com/tws-en.js”&gt;&lt;/SCRIPT&gt;</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51911.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/51911.png" alt="51911" width="343" height="44" /></a></p>
<p>详细请访问：https://www.wosign.com/support/siteseal.htm</p>
<p><strong>2.4测试SSL证书</strong></p>
<p>在浏览器地址栏输入：https://www.fuwuqiok.com (申请证书的域名)测试您的SSL证书是否安装成功，如果成功，则浏览器下方会显示一个安全锁标志。测试站点证书的安装配置。</p>
<p><strong>2.5 SSL证书的备份</strong></p>
<p>请保存好收到的证书压缩包文件及密码，以防丢失</p>
<p><strong>2.6SSL证书的恢复</strong></p>
<p>重复2.3操作即可。</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91slb%e6%9c%8d%e5%8a%a1%e5%99%a8ssl%e8%af%81%e4%b9%a6%e9%83%a8%e7%bd%b2%e6%8c%87%e5%8d%97/">阿里云slb服务器SSL证书部署指南</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91slb%e6%9c%8d%e5%8a%a1%e5%99%a8ssl%e8%af%81%e4%b9%a6%e9%83%a8%e7%bd%b2%e6%8c%87%e5%8d%97/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>对比linux负载均衡haproxy，slb以及node-slb</title>
		<link>https://www.fuwuqiok.com/%e5%af%b9%e6%af%94linux%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1haproxy%ef%bc%8cslb%e4%bb%a5%e5%8f%8anode-slb/</link>
		<comments>https://www.fuwuqiok.com/%e5%af%b9%e6%af%94linux%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1haproxy%ef%bc%8cslb%e4%bb%a5%e5%8f%8anode-slb/#comments</comments>
		<pubDate>Sat, 15 Aug 2015 04:57:19 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[网站代维]]></category>
		<category><![CDATA[aws代维]]></category>
		<category><![CDATA[haproxy]]></category>
		<category><![CDATA[node-slb]]></category>
		<category><![CDATA[slb]]></category>
		<category><![CDATA[对比linux负载均衡]]></category>
		<category><![CDATA[对比linux负载均衡haproxy，slb以及node-slb]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=2579</guid>
		<description><![CDATA[<p>今天遇到一客户的线上环境是阿里云，使用的是阿里云有SLB，但客户想自己做负载器，，本文试图以haproxy来解 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%af%b9%e6%af%94linux%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1haproxy%ef%bc%8cslb%e4%bb%a5%e5%8f%8anode-slb/">对比linux负载均衡haproxy，slb以及node-slb</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>今天遇到一客户的线上环境是阿里云，使用的是阿里云有SLB，但客户想自己做负载器，，本文试图以haproxy来解释一下slb的原理</p>
<p>讲解haproxy的目的是介绍负载算法，便于理解SLB，最后给出node-slb解决方案</p>
<h2>目前比较流行的</h2>
<p>目前，在线上环境中应用较多的负载均衡器硬件有F5 BIG-IP,软件有LVS，Nginx及HAProxy,高可用软件有Heartbeat. Keepalived</p>
<p>成熟的架构有</p>
<ul>
<li>LVS+Keepalived</li>
<li>Nginx+Keepalived</li>
<li>HAProxy+keepalived</li>
<li>DRBD+Heartbeat</li>
</ul>
<h2>HAProxy</h2>
<p>优点</p>
<ol>
<li>HAProxy是支持虚拟主机的，可以工作在4. 7层(支持多网段)；</li>
<li>能够补充Nginx的一些缺点比如Session的保持，Cookie的引导等工作；</li>
<li>支持url检测后端的服务器；</li>
<li>它跟LVS一样，本身仅仅就只是一款负载均衡软件；单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度，在并发处理上也是优于Nginx的；</li>
<li>HAProxy可以对Mysql读进行负载均衡，对后端的MySQL节点进行检测和负载均衡，不过在后端的MySQL slaves数量超过10台时性能不如LVS；</li>
<li>HAProxy的算法较多，达到8种；</li>
</ol>
<p>官网 <a href="http://www.haproxy.org/" target="_blank">http://www.haproxy.org/</a> (自备梯子)</p>
<ul>
<li><a href="http://cbonte.github.io/haproxy-dconv/configuration-1.5.html" target="_blank">http://cbonte.github.io/haproxy-dconv/configuration-1.5.html</a></li>
<li><a href="http://demo.haproxy.org/" target="_blank">http://demo.haproxy.org/</a></li>
</ul>
<p>我觉得它是所有负载软件里最简单最好用的。配置文件比nginx还简单，而且还有监控页面。</p>
<p>下载最新版软件 <a href="http://www.haproxy.org/download/1.5/src/haproxy-1.5.12.tar.gz" target="_blank">http://www.haproxy.org/download/1.5/src/haproxy-1.5.12.tar.gz</a></p>
<p>解压</p>
<pre class="prettyprint"><code><span class="pln">tar </span><span class="pun">-</span><span class="pln">zxvf haproxy</span><span class="pun">-</span><span class="lit">1.5</span><span class="pun">.</span><span class="lit">12.tar</span><span class="pun">.</span><span class="pln">gz</span></code></pre>
<p>切换到目录</p>
<pre class="prettyprint"><code><span class="pln">cd haproxy</span><span class="pun">-</span><span class="lit">1.5</span><span class="pun">.</span><span class="lit">12</span> </code></pre>
<p>打开readme看一下，如何安装</p>
<pre class="prettyprint"><code><span class="pln">make TARGET</span><span class="pun">=</span><span class="pln">linux26
sudo make install</span></code></pre>
<h2>创建一个配置文件</h2>
<pre class="prettyprint"><code><span class="com"># Simple configuration for an HTTP proxy listening on port 80 on all</span>
<span class="com"># interfaces and forwarding requests to a single backend "servers" with a</span>
<span class="com"># single server "server1" listening on 127.0.0.1:8000</span>
<span class="kwd">global</span><span class="pln">
    daemon
    maxconn </span><span class="lit">256</span><span class="pln">

defaults
    mode http
    timeout connect </span><span class="lit">5000ms</span><span class="pln">
    timeout client </span><span class="lit">50000ms</span><span class="pln">
    timeout server </span><span class="lit">50000ms</span><span class="pln">

frontend http</span><span class="pun">-</span><span class="kwd">in</span><span class="pln">
    bind </span><span class="pun">*:</span><span class="lit">80</span><span class="pln">
    default_backend servers

backend servers
    server server1 </span><span class="lit">127.0</span><span class="pun">.</span><span class="lit">0.1</span><span class="pun">:</span><span class="lit">8000</span><span class="pln"> maxconn </span><span class="lit">32</span>


<span class="com"># The same configuration defined with a single listen block. Shorter but</span>
<span class="com"># less expressive, especially in HTTP mode.</span>
<span class="kwd">global</span><span class="pln">
    daemon
    maxconn </span><span class="lit">256</span><span class="pln">

defaults
    mode http
    timeout connect </span><span class="lit">5000ms</span><span class="pln">
    timeout client </span><span class="lit">50000ms</span><span class="pln">
    timeout server </span><span class="lit">50000ms</span><span class="pln">

listen http</span><span class="pun">-</span><span class="kwd">in</span><span class="pln">
    bind </span><span class="pun">*:</span><span class="lit">80</span><span class="pln">
    server server1 </span><span class="lit">127.0</span><span class="pun">.</span><span class="lit">0.1</span><span class="pun">:</span><span class="lit">8000</span><span class="pln"> maxconn </span><span class="lit">32</span></code></pre>
<h2>启动</h2>
<pre class="prettyprint"><code><span class="pln">haproxy </span><span class="pun">-</span><span class="pln">f test</span><span class="pun">.</span><span class="pln">cfg</span></code></pre>
<h2>查看状态</h2>
<p>记得在配置文件里加上</p>
<pre class="prettyprint"><code><span class="pln">listen admin_stats
    bind </span><span class="lit">0.0</span><span class="pun">.</span><span class="lit">0.0</span><span class="pun">:</span><span class="lit">8888</span><span class="pln">
    stats refresh </span><span class="lit">30s</span><span class="pln">
    stats uri </span><span class="pun">/</span><span class="pln">stats
    stats realm </span><span class="typ">Haproxy</span> <span class="typ">Manager</span><span class="pln">
    stats auth admin</span><span class="pun">:</span><span class="pln">admin
    </span><span class="com">#stats hide-version</span></code></pre>
<p><a href="http://ip:8888/stats" target="_blank">http://ip:8888/stats</a></p>
<h2>负载均衡–调度算法</h2>
<p>HAProxy的算法有如下8种：</p>
<ul>
<li>roundrobin，表示简单的轮询，这个不多说，这个是 负载均衡 基本都具备的；</li>
<li>static-rr，表示根据权重，建议关注；</li>
<li>leastconn，表示最少连接者先处理，建议关注；</li>
<li>source，表示根据请求源IP，建议关注；</li>
<li>uri，表示根据请求的URI；</li>
<li>url_param，表示根据请求的URl参数’balance url_param’ requires an URL parameter name</li>
<li>hdr(name)，表示根据HTTP请求头来锁定每一次HTTP请求；</li>
<li>rdp-cookie(name)，表示根据据cookie(name)来锁定并哈希每一次TCP请求。</li>
</ul>
<h2>SLB是神马</h2>
<p>负载均衡（Server Load Balancer，简称SLB）是对多台云服务器进行流量分发的负载均衡服务。SLB可以通过流量分发扩展应用系统对外的服务能力，通过消除单点故障提升应用系统的可用性</p>
<h2>SLB是如何实现的</h2>
<p>使用tengine实现的。</p>
<p>Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上，针对大访问量网站的需求，添加了很多高级功能和特性。</p>
<p>see <a href="http://tengine.taobao.org/" target="_blank">http://tengine.taobao.org/</a></p>
<h2>SLB用法</h2>
<p>创建slb</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FtsMbDlyilG2itdha2dJNbb1YcSI"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FtsMbDlyilG2itdha2dJNbb1YcSI" alt="FtsMbDlyilG2itdha2dJNbb1YcS" width="2554" height="956" /></a></p>
<p>点击管理按钮，进入实例详情</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FvkQ6j3WSuT2u_69XG-KjJB8M1Yb"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FvkQ6j3WSuT2u_69XG-KjJB8M1Yb" alt="FvkQ6j3WSuT2u_69XG-KjJB8M1Y" width="2560" height="994" /></a></p>
<p>没啥需要改的，我们直接看服务监听功能，看看如何配置slb</p>
<ul>
<li>配置端口</li>
<li>转发规则</li>
<li>带宽</li>
<li>健康检查等</li>
</ul>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FsuvA67vcNLr5Rw7L5Aurx4LoNdO"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FsuvA67vcNLr5Rw7L5Aurx4LoNdO" alt="FsuvA67vcNLr5Rw7L5Aurx4LoNd" width="2558" height="848" /></a></p>
<p>点击编辑按钮，此时可以看到具体配置页面</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FvIIlcf7QaPL8MWG97L8oRHFKnD"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FvIIlcf7QaPL8MWG97L8oRHFKnD" alt="FvIIlcf7QaPL8MWG97L8oRHFKn" width="2560" height="1120" /></a></p>
<p>目前slb支持2种转发规则</p>
<ul>
<li>轮询</li>
<li>最小连接数</li>
</ul>
<p>轮询应该是和haproxy的roundrobin调度算法一样，表示简单的轮询</p>
<p>最小连接数SLB会自动判断 当前ECS 的established 来判断是否转发</p>
<p>配置完了slb server，下一步要设置具体slb把请求转发给哪台机器，这实际上才是最核心的的配置。</p>
<p>阿里云把这件事儿做的超级简单</p>
<p>假设我现在有一个ecs服务器为已填加</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FjsGTmA1fhEZRt52GUpTebWQ9uxD"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FjsGTmA1fhEZRt52GUpTebWQ9uxD" alt="FjsGTmA1fhEZRt52GUpTebWQ9ux" width="2560" height="962" /></a></p>
<p>点击【未添加的服务器】，此时会列出未加入负载池的ecs服务器</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/Fg5bulgyHv3mZy9kPTz_eEvN_5H5"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/Fg5bulgyHv3mZy9kPTz_eEvN_5H5" alt="Fg5bulgyHv3mZy9kPTz_eEvN_5H" width="2560" height="1020" /></a></p>
<p>选中一台服务器</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FjLo0dGzXxDbbxFaoOtIonsoFFfc"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FjLo0dGzXxDbbxFaoOtIonsoFFfc" alt="FjLo0dGzXxDbbxFaoOtIonsoFFf" width="2560" height="958" /></a></p>
<p>点击批量添加</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FnsjDqnXco-vuGZ-Rhbiw9v3OX0"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FnsjDqnXco-vuGZ-Rhbiw9v3OX0" alt="FnsjDqnXco-vuGZ-Rhbiw9v3OX" width="2210" height="988" /></a></p>
<p>配置一下权重，如果机器性能一样就配置权重一样，性能越好，权重越大</p>
<p>可选值【0 – 100】</p>
<p>完成配置后，已添加服务器里就有了2台服务器</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FrPQGvf9XhZH-gNuZzvfXWaSy0WP"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FrPQGvf9XhZH-gNuZzvfXWaSy0WP" alt="FrPQGvf9XhZH-gNuZzvfXWaSy0W" width="2558" height="956" /></a></p>
<p>保证你的服务器都启动，比如2台服务器的80端口都正常即可</p>
<p>此时你需要做的是把你的域名解析到slb服务器的ip地址上</p>
<h2>node-slb</h2>
<p>an expressjs middleware for aliyun slb</p>
<h3>缘起</h3>
<p><a href="http://bbs.aliyun.com/read/188736.html?page=1" target="_blank">http://bbs.aliyun.com/read/188736.html?page=1</a></p>
<p>2）请问健康检查发的什么请求？ head 还是 get？ head请求。</p>
<p>如果express路由没有处理head请求的话，会触发其他路由，可能会出现请求重定向死循环</p>
<h2>原理</h2>
<pre class="prettyprint"><code><span class="kwd">var</span><span class="pln"> debug </span><span class="pun">=</span> <span class="kwd">require</span><span class="pun">(</span><span class="str">'debug'</span><span class="pun">)(</span><span class="str">'slb'</span><span class="pun">);</span>

<span class="kwd">module</span><span class="pun">.</span><span class="pln">exports </span><span class="pun">=</span> <span class="kwd">function</span> <span class="pun">(</span><span class="pln">req</span><span class="pun">,</span><span class="pln"> res</span><span class="pun">,</span> <span class="kwd">next</span><span class="pun">)</span> <span class="pun">{</span>
  <span class="kwd">if</span><span class="pun">(</span><span class="pln">req</span><span class="pun">.</span><span class="pln">method</span><span class="pun">.</span><span class="pln">toLowerCase</span><span class="pun">()</span> <span class="pun">==</span> <span class="str">'head'</span><span class="pun">){</span><span class="pln">    
    debug</span><span class="pun">(</span><span class="str">'[ALIYUN.COM LOG]: SLB health checking....OK...'</span><span class="pun">);</span>
    <span class="kwd">return</span><span class="pln"> res</span><span class="pun">.</span><span class="pln">sendStatus</span><span class="pun">(</span><span class="lit">200</span><span class="pun">);</span>
  <span class="pun">}</span>

  <span class="kwd">next</span><span class="pun">();</span>
<span class="pun">};</span></code></pre>
<p>原理非常简单：以中间件的形式，处理一下req.method为head的适合，终止此请求即可</p>
<h3>安装</h3>
<pre class="prettyprint"><code><span class="pln">npm install </span><span class="pun">--</span><span class="pln">save node</span><span class="pun">-</span><span class="pln">slb</span></code></pre>
<h3>用法</h3>
<pre class="prettyprint"><code><span class="kwd">var</span><span class="pln"> slb </span><span class="pun">=</span> <span class="kwd">require</span><span class="pun">(</span><span class="str">'node-slb'</span><span class="pun">);</span>

<span class="kwd">var</span><span class="pln"> app </span><span class="pun">=</span><span class="pln"> express</span><span class="pun">();</span><span class="pln">
app</span><span class="pun">.</span><span class="pln">user</span><span class="pun">(</span><span class="pln">slb</span><span class="pun">);</span></code></pre>
<h3>测试</h3>
<p>首先启动demo的服务</p>
<pre class="prettyprint"><code><span class="pun">➜</span><span class="pln">  node</span><span class="pun">-</span><span class="pln">slb git</span><span class="pun">:(</span><span class="pln">master</span><span class="pun">)</span> <span class="pun">✗</span><span class="pln"> npm start

</span><span class="pun">&gt;</span><span class="pln"> node</span><span class="pun">-</span><span class="pln">slb@1</span><span class="pun">.</span><span class="lit">0.0</span><span class="pln"> start </span><span class="pun">/</span><span class="typ">Users</span><span class="pun">/</span><span class="pln">sang</span><span class="pun">/</span><span class="pln">workspace</span><span class="pun">/</span><span class="pln">github</span><span class="pun">/</span><span class="pln">node</span><span class="pun">-</span><span class="pln">slb
</span><span class="pun">&gt;</span><span class="pln"> cd demo </span><span class="pun">&amp;&amp;</span><span class="pln"> npm install </span><span class="pun">&amp;&amp;</span><span class="pln"> npm start


</span><span class="pun">&gt;</span><span class="pln"> url@0</span><span class="pun">.</span><span class="lit">0.0</span><span class="pln"> start </span><span class="pun">/</span><span class="typ">Users</span><span class="pun">/</span><span class="pln">sang</span><span class="pun">/</span><span class="pln">workspace</span><span class="pun">/</span><span class="pln">github</span><span class="pun">/</span><span class="pln">node</span><span class="pun">-</span><span class="pln">slb</span><span class="pun">/</span><span class="pln">demo
</span><span class="pun">&gt;</span><span class="pln"> node </span><span class="pun">./</span><span class="pln">bin</span><span class="pun">/</span><span class="pln">www</span></code></pre>
<p>执行test命令，测试请求</p>
<pre class="prettyprint"><code><span class="pun">➜</span><span class="pln">  node</span><span class="pun">-</span><span class="pln">slb git</span><span class="pun">:(</span><span class="pln">master</span><span class="pun">)</span> <span class="pun">✗</span><span class="pln"> npm test

</span><span class="pun">&gt;</span><span class="pln"> node</span><span class="pun">-</span><span class="pln">slb@1</span><span class="pun">.</span><span class="lit">0.0</span><span class="pln"> test </span><span class="pun">/</span><span class="typ">Users</span><span class="pun">/</span><span class="pln">sang</span><span class="pun">/</span><span class="pln">workspace</span><span class="pun">/</span><span class="pln">github</span><span class="pun">/</span><span class="pln">node</span><span class="pun">-</span><span class="pln">slb
</span><span class="pun">&gt;</span><span class="pln"> curl </span><span class="pun">-</span><span class="pln">i </span><span class="pun">-</span><span class="pln">X HEAD http</span><span class="pun">:</span><span class="com">//127.0.0.1:3000</span><span class="pln">

HTTP</span><span class="pun">/</span><span class="lit">1.1</span> <span class="lit">200</span><span class="pln"> OK
X</span><span class="pun">-</span><span class="typ">Powered</span><span class="pun">-</span><span class="typ">By</span><span class="pun">:</span> <span class="typ">Express</span>
<span class="typ">Content</span><span class="pun">-</span><span class="typ">Type</span><span class="pun">:</span><span class="pln"> text</span><span class="pun">/</span><span class="pln">plain</span><span class="pun">;</span><span class="pln"> charset</span><span class="pun">=</span><span class="pln">utf</span><span class="pun">-</span><span class="lit">8</span>
<span class="typ">Content</span><span class="pun">-</span><span class="typ">Length</span><span class="pun">:</span> <span class="lit">2</span>
<span class="typ">ETag</span><span class="pun">:</span><span class="pln"> W</span><span class="pun">/</span><span class="str">"2-d736d92d"</span>
<span class="typ">Date</span><span class="pun">:</span> <span class="typ">Mon</span><span class="pun">,</span> <span class="lit">29</span> <span class="typ">Jun</span> <span class="lit">2015</span> <span class="lit">03</span><span class="pun">:</span><span class="lit">46</span><span class="pun">:</span><span class="lit">49</span><span class="pln"> GMT
</span><span class="typ">Connection</span><span class="pun">:</span><span class="pln"> keep</span><span class="pun">-</span><span class="pln">alive</span></code></pre>
<p>此时，观察服务器日志</p>
<pre class="prettyprint"><code><span class="pun">➜</span><span class="pln">  node</span><span class="pun">-</span><span class="pln">slb git</span><span class="pun">:(</span><span class="pln">master</span><span class="pun">)</span> <span class="pun">✗</span><span class="pln"> npm start

</span><span class="pun">&gt;</span><span class="pln"> node</span><span class="pun">-</span><span class="pln">slb@1</span><span class="pun">.</span><span class="lit">0.0</span><span class="pln"> start </span><span class="pun">/</span><span class="typ">Users</span><span class="pun">/</span><span class="pln">sang</span><span class="pun">/</span><span class="pln">workspace</span><span class="pun">/</span><span class="pln">github</span><span class="pun">/</span><span class="pln">node</span><span class="pun">-</span><span class="pln">slb
</span><span class="pun">&gt;</span><span class="pln"> cd demo </span><span class="pun">&amp;&amp;</span><span class="pln"> npm install </span><span class="pun">&amp;&amp;</span><span class="pln"> npm start


</span><span class="pun">&gt;</span><span class="pln"> url@0</span><span class="pun">.</span><span class="lit">0.0</span><span class="pln"> start </span><span class="pun">/</span><span class="typ">Users</span><span class="pun">/</span><span class="pln">sang</span><span class="pun">/</span><span class="pln">workspace</span><span class="pun">/</span><span class="pln">github</span><span class="pun">/</span><span class="pln">node</span><span class="pun">-</span><span class="pln">slb</span><span class="pun">/</span><span class="pln">demo
</span><span class="pun">&gt;</span><span class="pln"> DEBUG</span><span class="pun">=</span><span class="pln">slb node </span><span class="pun">./</span><span class="pln">bin</span><span class="pun">/</span><span class="pln">www

</span><span class="pun">[</span><span class="pln">ALIYUN</span><span class="pun">.</span><span class="pln">COM LOG</span><span class="pun">]:</span><span class="pln"> SLB health checking</span><span class="pun">....</span><span class="pln">OK</span><span class="pun">...</span></code></pre>
<p>如果出现<code>[ALIYUN.COM LOG]: SLB health checking....OK...</code>说明正常。</p>
<p>如果想打印日志，可以DEBUG=slb，如果不想打印日志，默认即无。</p>
<h2>总结</h2>
<ul>
<li>首先介绍了haproxy和负载均衡算法</li>
<li>介绍了阿里云slb用法</li>
<li>给出node-slb，一个express中间件</li>
</ul>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%af%b9%e6%af%94linux%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1haproxy%ef%bc%8cslb%e4%bb%a5%e5%8f%8anode-slb/">对比linux负载均衡haproxy，slb以及node-slb</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e5%af%b9%e6%af%94linux%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1haproxy%ef%bc%8cslb%e4%bb%a5%e5%8f%8anode-slb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
